是否可以使用返回 Future 的函数来过滤 List?

EdY*_*uTo 4 dart flutter

我有一个列表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>

Mic*_*ono 6

由于迭代涉及到异步操作,因此需要使用aFuture来执行迭代。

final result = <Item>[];
await Future.forEach(list, (Item item) async {
  if (await myFilter(item)) {
    result.add(item);
  }
});
Run Code Online (Sandbox Code Playgroud)