drain<E> 方法
- [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);
}