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

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

Сообщение Гость »


Я пытаюсь изучить сопрограммы в 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() } }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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