Карточка Middle Dart: Future, Stream, изоляты обновлено
Что попадает в microtask queue
Вопрос
Перечислите, что в Dart попадает в очередь микрозадач, а что в event queue.
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
Microtask: scheduleMicrotask, Future.microtask, колбэки then на уже завершённом Future, продолжение после await. Event queue: Future(() = ...), Future.delayed, Timer, ввод-вывод, события ввода, кадры, сообщения от изолятов.
Ответ
Microtask: scheduleMicrotask, Future.microtask, колбэки then на уже завершённом Future, продолжение после await. Event queue: Future(() => ...), Future.delayed, Timer, ввод-вывод, события ввода, кадры, сообщения от изолятов.
Разбор
Бесконечная цепочка микрозадач заморозит интерфейс: до событий и кадров очередь так и не дойдёт.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «Dart: Future, Stream, изоляты»
- Dart: синхронная часть async-функции
- Dart: когда выносить работу в изолят
- async* и yield
- Dart: изолят против потока
- Порядок работы event loop в Dart
- Dart: код async-функции до await
- Dart: две async-функции с await
- Dart: синхронный код, микрозадачи, события