Junior — Middle
93
Kotlin-те корутиндерді пайдалану кезінде launch пен async функцияларының айырмашылығы неде?
Сұралған компаниялар
Viasat tech
Dion
AI-дан жауап
sobes.tech AI
Функции launch и async в Kotlin используются для запуска корутин, но имеют разные цели и возвращают разные типы.
-
launchзапускает корутину, которая выполняется в фоне и не возвращает результата. Она возвращает объектJob, который можно использовать для управления корутиной (например, отмены). -
asyncзапускает корутину, которая возвращает результат в будущем. Она возвращает объектDeferred<T>, который является потомкомJobи позволяет получить результат с помощьюawait().
Пример:
val job = scope.launch {
// выполняем задачу без результата
}
val deferred = scope.async {
// вычисляем и возвращаем результат
42
}
runBlocking {
val result = deferred.await() // получаем результат
println(result) // 42
}
Итого:
- Используйте
launch, когда не нужен результат. - Используйте
async, когда нужно получить результат асинхронной операции.