Выбор ответа Junior Dart: Future, Stream, изоляты спрашивают часто обновлено

Dart: синхронная часть async-функции

Вопрос

Когда выполняется код async-функции до первого await?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Синхронно, сразу при вызове функции, и до первого await включительно. Тело async-функции начинает выполняться синхронно в момент вызова и идёт до первого await.

Варианты ответа

  1. В следующей микрозадаче, как колбэк then у уже завершённого Future
  2. В следующем событии event loop, так же как код внутри Future(() => ...)
  3. В отдельном изоляте, который Dart создаёт для каждой async-функции
  4. Синхронно, сразу при вызове функции, и до первого await включительноправильный ответ

Разбор

Тело async-функции начинает выполняться синхронно в момент вызова и идёт до первого await. Только продолжение после await планируется асинхронно. Изоляты сами по себе не создаются: async не делает код фоновым.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.