метод drain< E>
- [E? futureValue]
Отбрасывает все данные из этого потока, но сообщает о его завершении или возникновении ошибки.
При подписке с помощью drain значение cancelOnError будет равно true. Это означает, что future завершится с первой ошибкой в этом потоке, после чего подписка будет отменена.
Если в этом потоке возникает ошибка, возвращаемый future завершается с этой ошибкой, а обработка прекращается.
В случае события done future завершается с указанным futureValue.
futureValue нельзя опускать, если null не является подтипом E.
Пример:
final result = await Stream.fromIterable([1, 2, 3]).drain(100); print(result); // Outputs: 100.
Реализация
Future<E> drain<E>([E? futureValue]) {
if (futureValue == null) {
futureValue = futureValue as E;
}
return listen(null, cancelOnError: true).asFuture<E>(futureValue);
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-async/Stream/drain.html