Метод toList
Метод toList класса Stream собирает все события потока
в список и возвращает Future с этим списком. Метод
подписывается на поток, накапливает все приходящие данные
и завершается, когда поток закрывается. В результате
возвращается будущее значение, содержащее список всех
событий потока в порядке их поступления. Метод не принимает
обязательных параметров.
Синтаксис
Stream<T>.toList()
Пример
Давайте создадим поток из списка чисел и соберём все его события в список:
void main()
{
Stream<int> stream = Stream.fromIterable([1, 2, 3, 4, 5]);
stream.toList().then((res) {
print(res);
});
}
Результат выполнения кода:
[1, 2, 3, 4, 5]
Пример
Давайте соберём события потока строк в список
с помощью await:
void main() async
{
Stream<String> stream = Stream.fromIterable(['a', 'b', 'c', 'd', 'e']);
List<String> res = await stream.toList();
print(res);
}
Результат выполнения кода:
[a, b, c, d, e]
Пример
Давайте применим toList к потоку, созданному
через StreamController, и добавим события вручную:
void main() async
{
StreamController<int> controller = StreamController<int>();
controller.add(1);
controller.add(2);
controller.add(3);
controller.close();
List<int> res = await controller.stream.toList();
print(res);
}
Результат выполнения кода:
[1, 2, 3]