Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 当流程产生一定的价值时,创造未来_Flutter_Dart_Stream - Fatal编程技术网

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())
.首先
如果
关闭时未发出
响应事件
,则在所有这些情况下,未来都将以错误完成。具体错误将取决于您选择的模式