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

Dart: single-subscription и broadcast Stream

Вопрос

Чем broadcast Stream отличается от single-subscription?

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

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

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

Коротко

Правильный ответ: Broadcast раздаёт события текущим слушателям, single-subscription один и буферизует. Single-subscription (по умолчанию) рассчитан на один последовательный поток данных, как чтение файла: вторая подписка бросит StateError, а события до подписки буферизуются.

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

  1. Broadcast работает в отдельном изоляте, поэтому его события не блокируют интерфейс
  2. Single-subscription нельзя отменить: подписка живёт, пока поток не закроется сам
  3. Broadcast раздаёт события текущим слушателям, single-subscription один и буферизуетправильный ответ
  4. Broadcast гарантирует каждому новому слушателю доставку всех событий с начала потока

Разбор

Single-subscription (по умолчанию) рассчитан на один последовательный поток данных, как чтение файла: вторая подписка бросит StateError, а события до подписки буферизуются. Broadcast раздаёт события всем текущим слушателям и не хранит пропущенные: подписался поздно, прошлого не увидишь. Отменить можно любую подписку через cancel. С изолятами Stream не связан.

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

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