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

Метод add

Метод add класса StreamController добавляет новые данные в поток. В первый параметр мы передаем значение, которое нужно отправить в поток. После вызова метода это значение станет доступно всем слушателям потока. Если контроллер уже закрыт, вызов метода приведет к ошибке.

Синтаксис

controller.add(value)

Пример

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

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

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

12345

Пример

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

import 'dart:async'; void main() { StreamController controller = StreamController(); List res = []; controller.stream.listen((value) { res.add(value); }); controller.add('a'); controller.add('b'); controller.add('c'); Future.delayed(Duration.zero, () { print(res); }); }

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

[a, b, c]

Пример

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

<+dart+> import 'dart:async'; void main() { StreamController controller = StreamController(); controller.stream.listen( (value) { print(value); }, onError: (error) { print('Error: $error'); } ); controller.add('abcde'); controller.close(); controller.add('12345'); } <-dart+>

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

"abcde" Error: Bad state: Cannot add new events after calling close

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

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