Что выведет код Junior Dart: Future, Stream, изоляты спрашивают часто обновлено
Dart: код async-функции до await
Вопрос
Что выведет программа? По строке на каждый вывод.
Future<void> load() async {
print('A');
await null;
print('B');
}
void main() {
print('start');
load();
print('C');
}
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: start, A, C, B. Тело load выполняется синхронно до await, поэтому A сразу после start. await null отдаёт управление даже для не-Future значения: продолжение B выполнится микрозадачей после синхронного C.
Что выведет
start
A
C
B
Разбор
Тело load выполняется синхронно до await, поэтому A сразу после start. await null отдаёт управление даже для не-Future значения: продолжение B выполнится микрозадачей после синхронного C.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.