Junior — Middle
Обяснете механизма на взаимодействие на ключовите елементи async и await при обработката на корутините.
sobes.tech AI
Отговор от AI
В Kotlin корутините използват ключовите думи async и await за асинхронно програмиране.
- async стартира нова корутина и връща Deferred — отложен резултат.
- await се извиква върху Deferred и спира изпълнението на текущата корутина, докато не получи резултата, без да блокира нишката.
Пример:
val deferred = async {
// Дълга операция
fetchData()
}
val result = deferred.await() // Изчакваме резултата асинхронно
По този начин, async позволява да се стартират задачи паралелно, а await — да се получат техните резултати, като се запази асинхронността и не се блокира основният поток.