Как: стрелять и забывать асинхронные сопрограммы в Котлине

Я читал на койлинах Котлина, но не нашел ответа на конкретную проблему.

Скажем, я хочу перебирать коллекцию, создавая вызов API для каждого элемента (в этом конкретном случае нажатие файла на Amazon S3). Я хочу, чтобы эти вызовы обрабатывались асинхронной сопрограммой, чтобы не блокировать основной поток во время ожидания.

Мне не требуется возвращаемое значение из запроса, только для регистрации исключений.

Как я могу создать асинхронную сопрограмму «огонь и забыть», чтобы сделать один из этих запросов?

возможно, kotlinx.coroutines # launch или kotlinx.coroutines # async отвечают вашим потребностям. Например:

launch(CommonPool) { for(item in collection){ val result = apiCall(item); log(result); } } 

ИЛИ

 for(item in collection){ launch(CommonPool) { val result = apiCall(item) log(result) } }