【发布时间】:2021-11-20 00:59:36
【问题描述】:
我想创建一个 helpfer 方法,该方法从库中获取一个流(在本例中为绘制)并将流从 Stream<UserContent> 更改为 Stream<Submission> 并过滤提交的内容以查找错误。
到目前为止,我有这段代码,但我现在如何返回流?
Stream<Submission> getSavedPosts({int limit = 20}) async* {
yield await _me!.saved(limit: limit).map((UserContent userContent) async {
try {
Submission sub = await _populateUserContent(userContent);
if (_filterPost(sub)) {
return sub;
}
} catch (err) {
print(err);
}
}); // The type 'Stream<Stream<Future<Submission?>>>' implied by the 'yield' expression must be assignable to 'Stream<Submission>'.
}
【问题讨论】:
-
您可能应该在每次迭代中使用
await forloop,然后使用yield sub。 -
您不应该使用
yield,只需使用return并使用asyncMap代替map
标签: flutter dart asynchronous filter stream