如何在飞镖中控制异步执行流程[重复]
Posted
技术标签:
【中文标题】如何在飞镖中控制异步执行流程[重复]【英文标题】:how to control the execute flow in async in dart [duplicate] 【发布时间】:2021-11-10 11:42:01 【问题描述】:现在我遇到了一个问题,这是我的 Dart 代码:
Future<List<Music>?> getAvaliableFmMusics(List<Music>? recommand) async
final List<Music> resultMusic = List.empty(growable: true);
if (recommand != null)
recommand.forEach((element) async
bool isLegacyMusic = await ReddwarfMusic.legacyMusic(element);
if (!isLegacyMusic)
resultMusic.add(element);
);
return resultMusic;
我得到一个推荐的音乐列表,下一步我检查音乐列表是否包含旧音乐(用户已经听了很多次),然后将过滤的音乐添加到新列表中。最后将过滤后的音乐列表返回给用户 UI。问题是传统音乐将发送异步 http 请求,resultMusic
总是返回 null。我想要做的是等待 foreach 完成然后返回过滤后的resultMusic
,我应该怎么做才能让它像那样工作?这样可以吗?
【问题讨论】:
【参考方案1】:要使用forEach
和Futures
,您应该使用Future.forEach
像这样:
await Future.forEach(yourList,(e) async
await asyncCall(e);
);
【讨论】:
以上是关于如何在飞镖中控制异步执行流程[重复]的主要内容,如果未能解决你的问题,请参考以下文章