Junior — Middle
98
Pouvez-vous expliquer les différences entre les fonctions launch et async lors de l'utilisation de Coroutine Builder en Kotlin?
Entreprises à qui on a demandé
Effective Mobile
Réponse de l'IA
sobes.tech IA
В Kotlin при работе с корутинами launch и async — это Coroutine Builders, но они имеют разные цели:
-
launchзапускает корутину, которая выполняется асинхронно и не возвращает результат. Она используется для выполнения задач, где результат не нужен, например, для побочных эффектов. -
asyncзапускает корутину, которая возвращаетDeferred<T>— отложенный результат, который можно получить с помощьюawait(). Используется, когда нужно получить результат асинхронной операции.
Пример:
val job = scope.launch {
// выполняется асинхронно, результат не возвращается
}
val deferred = scope.async {
// выполняется асинхронно, возвращает результат
return@async 42
}
runBlocking {
val result = deferred.await() // получаем результат
println(result) // 42
}
Итого, launch — для запуска задач без результата, async — для запуска задач с результатом.