РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
82 of 723 menu

Тип Stream

Тип Stream<T> обозначает поток событий типа T. Элементы приходят по одному, а не лежат в памяти все сразу, как в List. Обычный поток из fromIterable или Stream.value можно прослушать один раз. Подписка делается методом listen или циклом await for внутри функции async. Поток может завершиться или сообщить об ошибке - это отдельные события, не значения типа T.

Синтаксис

Stream<int> name = Stream.fromIterable([1, 2, 3]); Stream<String> name = Stream.value('abcde');

Пример

Давайте создадим поток из трёх чисел и выведем каждое событие:

void main() async { Stream<int> res = Stream.fromIterable([1, 2, 3]); await for (int item in res) { print(item); } }

Результат выполнения кода:

1 2 3

Пример

Давайте получим единственное событие потока через свойство first:

void main() async { Stream<String> res = Stream.value('abcde'); print(await res.first); }

Результат выполнения кода:

"abcde"

Пример

Давайте подпишемся на поток методом listen и напечатаем числа по мере их прихода:

void main() { Stream<int> res = Stream.fromIterable([1, 2, 3]); res.listen((int item) { print(item); }); }

Результат выполнения кода:

1 2 3

Смотрите также

  • тип Future,
    который обозначает один будущий результат
  • тип Iterable,
    который перебирается синхронно
  • класс Stream,
    в котором собраны методы потоков
  • метод listen,
    который подписывается на события потока
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить