Карточка Middle Dart: Future, Stream, изоляты обновлено

async* и yield

Вопрос

Что делают async*, yield и yield*?

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

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

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

Коротко

async объявляет функцию-генератор, возвращающую Stream. yield v отдаёт событие в поток, yield other отдаёт все события другого потока. Тело начнёт выполняться только при подписке, и может приостанавливаться на await.

Ответ

async* объявляет функцию-генератор, возвращающую Stream. yield v отдаёт событие в поток, yield* other отдаёт все события другого потока. Тело начнёт выполняться только при подписке, и может приостанавливаться на await.

Разбор

Синхронная пара: sync* возвращает ленивый Iterable.

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

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