drain<E> 方法

Future<E> drain<E>(
  1. [E? futureValue]
)

丢弃此流上的所有数据,但会在完成或发生错误时发出信号。

当使用 drain 订阅时,cancelOnError将被设置为true。这意味着当流上出现第一个错误时,未来将会完成并取消订阅。

如果此流发出错误,返回的未来将会完成该错误,并且处理将会停止。

在发生 done 事件的情况下,未来将使用提供的 futureValue 完成。

如果 null 不能分配给 E,不得省略 futureValue

例如

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);
}