我有一个列表List<Item> list和一个函数Future<bool> myFilter(Item)。
有没有办法list使用 Future 返回函数来过滤我的myFilter()?
这个想法是能够做这样的事情:
final result = list.where((item) => myFilter(item)).toList();
Run Code Online (Sandbox Code Playgroud)
但这是不可能的,因为where预期bool而不是Future<bool>
由于迭代涉及到异步操作,因此需要使用aFuture来执行迭代。
final result = <Item>[];
await Future.forEach(list, (Item item) async {
if (await myFilter(item)) {
result.add(item);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1188 次 |
| 最近记录: |