gpt4 book ai didi

flutter - 当流产生一定值(value)时,创造流之外的 future

转载 作者:行者123 更新时间:2023-12-03 03:16:31 26 4
gpt4 key购买 nike

我有一个产生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()

这可能吗?如果可以,怎么办?

最佳答案

final response = aStreamOfEvents.firstWhere((e) => e is ResponseEvent);
response是上面的 Future<CallEvent>,因此,如果您需要 Future<ResponseEvent>,则需要类似以下内容:
final response = aStreamOfEvent
.firstWhere((e) => e is ResponseEvent)
.then((e) => e as ResponseEvent);

或者,或者,如果您使用 package:stream_transform
final response = aStreamOfEvent
.transform(whereType<ResponseEvent>())
.first

如果在没有发出 Stream的情况下关闭 ResponseEvent,那么在所有这些情况下,将来都会出错。具体的错误将取决于您选择的模式。

关于flutter - 当流产生一定值(value)时,创造流之外的 future ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57852838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com