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

Метод pipe

Метод pipe передает события потока в объект StreamConsumer. В первый параметр мы передаем потребителя, который принимает события потока. Метод возвращает Future, завершающийся после того, как потребитель закончит обработку и будет закрыт. Метод удобен, когда нужно перенаправить данные одного потока в другой поток, файл или другой приемник данных.

Синтаксис

Future pipe(StreamConsumer<T> streamConsumer)

Пример

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

import 'dart:async'; void main() { StreamController<int> controller = StreamController<int>(); Stream<int> stream = Stream.fromIterable([1, 2, 3, 4, 5]); controller.stream.listen((value) { print(value); }); stream.pipe(controller); }

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

1 2 3 4 5

Пример

Давайте дождемся завершения метода pipe с помощью await и выведем сообщение после завершения передачи потока:

import 'dart:async'; void main() async { StreamController<int> controller = StreamController<int>(); Stream<int> stream = Stream.fromIterable([1, 2, 3, 4, 5]); controller.stream.listen((value) { print(value); }); await stream.pipe(controller); print('done'); }

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

1 2 3 4 5 "done"

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

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