Выбор ответа Junior Dart: Future, Stream, изоляты спрашивают часто обновлено
Dart: синхронная часть async-функции
Вопрос
Когда выполняется код async-функции до первого await?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Синхронно, сразу при вызове функции, и до первого await включительно. Тело async-функции начинает выполняться синхронно в момент вызова и идёт до первого await.
Варианты ответа
- В следующей микрозадаче, как колбэк
thenу уже завершённого Future - В следующем событии event loop, так же как код внутри
Future(() => ...) - В отдельном изоляте, который Dart создаёт для каждой
async-функции - Синхронно, сразу при вызове функции, и до первого
awaitвключительноправильный ответ
Разбор
Тело async-функции начинает выполняться синхронно в момент вызова и идёт до первого await. Только продолжение после await планируется асинхронно. Изоляты сами по себе не создаются: async не делает код фоновым.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.