我可以使用异步映射函数映射一些Iterable吗?也许这是一个错误,这段代码在1秒或5秒后立即打印出_Future的列表,而不是int?

import 'dart:async';

Future<int> foo(int i) {
  var c = new Completer();
  new Timer(new Duration(seconds: 1), () => c.complete(i));
  return c.future;
}

main() {
  var list = [1,2,3,4,5];
  var mappedList = list.map((i) async => await foo(i));
  print(mappedList);
}

推荐答案

表达式(i) async => await foo(i)仍然返回future .您可以使用Future.wait(mappedList)等待所有创建的期货完成.

Dart相关问答推荐

如何防止 Riverpod 的 ConsumerWidget 重建管理 ThemeMode

Flutter pod 安装问题 - # 的未定义方法 `each_child'

在`lib`文件夹中使用`src`子文件夹有什么好处吗

如何计算列表中元素的出现次数

如何使我的Flitter应用程序的导航抽屉(Navigation Drawer)透明?

如何在Flatter中的press/finger/mouse/cursor位置显示菜单

如何从JSON对象获取格式化/缩进的JSON字符串?

在 Dart 中使用带有 Future 的循环

如何使 FadeInImage 循环?

Dart 构造函数与静态方法;例如,为什么 int.parse() 不是工厂构造函数?

Dart 中的 final 修饰符有什么作用?

用 dart 解析日期

从 Dart 调用 javascript

用于 dartlang 的 REPL

如何在 Dart 中从外部查询 shadow DOM 中的元素?

Dart 中使用的包命名约定是什么?

如何在 Dart 中逐个字符地迭代字符串?

getter 和 setter 如何改变 Dart 中的属性?

如何在 Dart 中使用 Switch Case 语句

何时在 Dart 中使用 part/part of 与 import/export?