Конструктор fromIterable
Конструктор fromIterable класса Stream создает поток данных,
который последовательно выдает элементы переданной коллекции.
В первый параметр мы передаем саму коллекцию, реализующую интерфейс
Iterable (например, список или множество). Во второй необязательный
параметр мы передаем функцию Iterable, которая позволяет преобразовать
каждый элемент коллекции перед его отправкой в поток. Поток начинает
выдавать значения только после того, как у него появится подписчик.
Синтаксис
Stream.fromIterable(Iterable<T> elements, [Iterable<R> Function(T event)?])
Пример
Давайте создадим поток из списка чисел и выведем каждый
элемент в консоль при помощи метода listen:
void main()
{
Stream<int> stream = Stream.fromIterable([1, 2, 3, 4, 5]);
stream.listen((int value) {
print(value);
});
}
Результат выполнения кода:
1
2
3
4
5
Пример
Давайте соберем все элементы потока в список
при помощи метода toList:
void main()
{
Stream<String> stream = Stream.fromIterable(['a', 'b', 'c', 'd', 'e']);
stream.toList().then((List<String> res) {
print(res);
});
}
Результат выполнения кода:
[a, b, c, d, e]
Пример
Давайте преобразуем каждый элемент коллекции перед отправкой
в поток, умножив числа на 10:
void main()
{
Stream<int> stream = Stream.fromIterable([1, 2, 3, 4, 5], (int value) => value * 10);
stream.listen((int value) {
print(value);
});
}
Результат выполнения кода:
10
20
30
40
50
Смотрите также
-
класс
Stream,
который представляет поток данных -
метод
listen,
который подписывается на поток -
метод
toList,
который собирает элементы потока в список -
конструктор
fromFuture,
который создает поток из Future