Чем async*, yield и yield* отличается от StreamController?

FlutterMiddle+: проектирует решение с учетом lifecycle, ошибок и поддержкиAsyncТеорияasyncasync-generatordartgeneratorsstreamyield

Что хотят услышать интервьюеры:

Отличие от StreamController: async*, yield и yield* обычно используют, когда нужна задача из контекста «Generators», а StreamController применяют в другом уровне абстракции или при другой сложности.

Ответ:

Как выбирать:

  • удобно для последовательных состояний loading/data
  • ошибки можно отдавать через stream
  • оцените стоимость поддержки, тестируемость и понятность для команды

Ошибка: выбирать инструмент по привычке, а не по требованиям конкретного flow. Сильный ответ: приведите пример, когда async*, yield и yield* уместен, и пример, когда лучше выбрать StreamController.

Источники

Похожие вопросы