Flutter 当流程产生一定的价值时,创造未来
我有一个产生Flutter 当流程产生一定的价值时,创造未来,flutter,dart,stream,Flutter,Dart,Stream,我有一个产生CallEvent对象的流。我想调用此流,但我对一个特定事件感兴趣,并希望将其作为未来使用。这可能吗 我试图实现的伪代码: final Stream<CallEvent> aStreamOfEvents = repo.getEvents(); // However of this stream im only interested in the `ResponseEvent` final Future<ResponseEvent> response =
CallEvent
对象的流。我想调用此流,但我对一个特定事件感兴趣,并希望将其作为未来使用。这可能吗
我试图实现的伪代码:
final Stream<CallEvent> aStreamOfEvents = repo.getEvents();
// However of this stream im only interested in the `ResponseEvent`
final Future<ResponseEvent> response =
aStreamOfEvents.filter((event) { event is ResponseEvent}).toFuture()
最终流aStreamOfEvents=repo.getEvents();
//然而,对于这个流,我只对“ResponseEvent”感兴趣`
未来的最终答复=
筛选器((事件){event is ResponseEvent}).toFuture()
这可能吗?如果可能,如何实现
final response = aStreamOfEvents.firstWhere((e) => e is ResponseEvent);
响应
是上面提到的未来
,因此如果您需要未来
,您需要类似于:
final response = aStreamOfEvent
.firstWhere((e) => e is ResponseEvent)
.then((e) => e as ResponseEvent);
或者,如果您使用包:stream\u transform
final response = aStreamOfEvent
.transform(whereType<ResponseEvent>())
.first
final response=aStreamOfEvent
.transform(whereType())
.首先
如果流
关闭时未发出响应事件
,则在所有这些情况下,未来都将以错误完成。具体错误将取决于您选择的模式