Выбор ответа Middle Dart: Future, Stream, изоляты обновлено
Dart: single-subscription и broadcast Stream
Вопрос
Чем broadcast Stream отличается от single-subscription?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Broadcast раздаёт события текущим слушателям, single-subscription один и буферизует. Single-subscription (по умолчанию) рассчитан на один последовательный поток данных, как чтение файла: вторая подписка бросит StateError, а события до подписки буферизуются.
Варианты ответа
- Broadcast работает в отдельном изоляте, поэтому его события не блокируют интерфейс
- Single-subscription нельзя отменить: подписка живёт, пока поток не закроется сам
- Broadcast раздаёт события текущим слушателям, single-subscription один и буферизуетправильный ответ
- Broadcast гарантирует каждому новому слушателю доставку всех событий с начала потока
Разбор
Single-subscription (по умолчанию) рассчитан на один последовательный поток данных, как чтение файла: вторая подписка бросит StateError, а события до подписки буферизуются. Broadcast раздаёт события всем текущим слушателям и не хранит пропущенные: подписался поздно, прошлого не увидишь. Отменить можно любую подписку через cancel. С изолятами Stream не связан.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.