Ответ
Для параллельного выполнения задач в suspend функции используйте coroutineScope с async:
suspend fun fetchData() = coroutineScope {
val deferred1 = async { fetchUserData() }
val deferred2 = async { fetchProductData() }
val user = deferred1.await()
val product = deferred2.await()
// Обработка результатов
}
Ключевые моменты:
coroutineScopeсоздает область видимости для корутинasyncзапускает задачи параллельноawait()получает результаты (выполняет ожидание)- Все дочерние корутины завершатся при выходе из
coroutineScope
Для отмены всех задач при ошибке используйте supervisorScope вместо coroutineScope.