我有多个流正在等待完成。我想知道是否有类似 Future.wait 的方法用于流?因为我查了很多却什么也没找到。
是的。实际上,您可以使用
Future.wait()
本身。只需等待流订阅变成期货即可:
StreamSubscription sub1 = stream1.listen(...);
StreamSubscription sub2 = stream2.listen(...);
await Future.wait([sub1.asFuture(), sub2.asFuture()]);
您正在等待流完成,但如果您只对流的第一个元素感兴趣,您也可以使用
first
:
await Future.wait([stream1.first, stream2.first]);
如果您正在等待所有流完成,则:
await Future.wait([stream1.last, stream2.last]);