CoroutineScope не ждет дочерних сопрограмм?Android

Форум для тех, кто программирует под Android
Anonymous
CoroutineScope не ждет дочерних сопрограмм?

Сообщение Anonymous »


Я пытаюсь изучить сопрограммы в Kotlin, и теперь у меня возникла проблема с кодом, с которым я играл на Kotlin Playground.

У меня есть две функции приостановки. Один с задержкой в ​​3 секунды. Я буду вызывать обе функции внутри сопрограммы. Если я вызываю getWeatherReport() в основном, я ожидаю, что он напечатает оба сообщения почти одновременно, потому что сказано, что сопрограммы ждут, пока все его дочерние сопрограммы завершат вычисления, а затем возвращаются. Но почему здесь 30 градусов печатаются сразу после 100 мс?

Из официального документа: «Эта функция возвращает значение, как только данный блок и все его дочерние сопрограммы завершены». Что именно означает, что функция возвращает значение?

приостановить веселье getWeatherReport() = coroutineScope { запустить { getTemperature() } запустить { getWind() } } приостановить веселье getTemperature(){ задержка(100) println("30 градусов") } приостановить веселье getWind(){ задержка(3000) println("Ветер с севера") } Вот как я вызываю main:
fun main(args: Array) { runBlocking { getWeatherReport() } }

Вернуться в «Android»