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

Свойство stream

Свойство stream класса StreamController возвращает объект Stream, связанный с данным контроллером. Через этот поток подписчики получают данные, которые контроллер передаёт с помощью метода add, ошибки, переданные через addError, и сигнал завершения после вызова close. Свойство доступно только для чтения и не принимает параметров.

Синтаксис

streamController.stream

Пример

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

import 'dart:async'; void main() { StreamController controller = StreamController(); controller.stream.listen((value) { print(value); }); controller.add('abcde'); controller.add('12345'); controller.close(); }

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

"abcde" "12345"

Пример

Давайте получим поток из контроллера и преобразуем его данные с помощью метода map:

import 'dart:async'; void main() { StreamController controller = StreamController(); controller.stream.map((value) => value * 2).listen((value) { print(value); }); controller.add(1); controller.add(2); controller.add(3); controller.close(); }

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

2 4 6

Пример

Давайте соберём все значения потока в список с помощью метода toList:

import 'dart:async'; void main() { StreamController controller = StreamController(); controller.stream.toList().then((res) { print(res); }); controller.add(1); controller.add(2); controller.add(3); controller.add(4); controller.add(5); controller.close(); }

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

[1, 2, 3, 4, 5]

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

  • класс StreamController,
    который управляет потоком данных
  • метод add,
    который добавляет данные в поток
  • метод close,
    который закрывает поток
  • свойство sink,
    которое предоставляет приёмник для записи данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить