Что выведет код 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 ошибок.