Back to questions
СБЕР
Иннотех
Газпром Медиа
X5 Digital
Junior — Middle
78
Какие конструкции для создания корутин ты знаешь вне основных функций?
Companies where asked
Магнит Тех
m4bank
Uzum
Core outstaff
Answer from AI
sobes.tech AI
В Kotlin для Android корутины можно создавать не только в основных функциях, но и с помощью различных конструкций:
-
launch — запускает новую корутину без возвращаемого результата, обычно в контексте
CoroutineScope. -
async — запускает корутину, которая возвращает результат через
Deferred. -
runBlocking — блокирует текущий поток, ожидая завершения корутины (чаще используется в тестах или main).
-
withContext — переключает контекст выполнения внутри корутины, например, на
Dispatchers.IO.
Пример создания корутины вне основной функции:
fun fetchData(scope: CoroutineScope) {
scope.launch {
val data = async { loadDataFromNetwork() }.await()
println(data)
}
}
suspend fun loadDataFromNetwork(): String {
// имитация сетевого запроса
delay(1000)
return "Data"
}
Таким образом, корутины можно создавать через launch, async, использовать withContext для переключения контекста, а также комбинировать эти конструкции для эффективного асинхронного кода.