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

Конструктор fromFuture

Конструктор fromFuture класса Stream создает новый поток, который будет содержать одно значение или ошибку, полученные из переданного объекта Future. Когда Future завершится успешно, поток испустит его результат и закроется. Если Future завершится с ошибкой, поток испустит эту ошибку и также закроется. В первый параметр мы передаем объект Future, который нужно преобразовать в поток. Второй необязательный параметр sync определяет, будет ли поток синхронным.

Синтаксис

Stream.fromFuture(future, [sync = false])

Пример

Давайте создадим поток из асинхронной функции, которая возвращает строку через одну секунду:

Future<String> fetchData() async { await Future.delayed(Duration(seconds: 1)); return 'abcde'; } void main() { Stream<String> stream = Stream.fromFuture(fetchData()); stream.listen((value) { print(value); }); }

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

"abcde"

Пример

Давайте создадим поток из Future, которое завершается ошибкой, и обработаем ее:

Future<int> fetchError() async { throw Exception('Something went wrong'); } void main() { Stream<int> stream = Stream.fromFuture(fetchError()); stream.listen( (value) { print(value); }, onError: (error) { print('Error: $error'); } ); }

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

"Error: Exception: Something went wrong"

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

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