Néo*_*igi 3 foreach async-await dart dart-async
所以基本上我有这段工作代码:
List<User> users = List();
await Future.forEach(querySnapshot.documents, (doc) async {
final snapshot = await doc['user'].get();
users.add(User(id: snapshot["id"], name: snapshot["mail"]));
});
return users;
Run Code Online (Sandbox Code Playgroud)
它可以正常工作,并且完全满足我的需求,但是我想知道是否有办法将其更改为地图,例如:
return querySnapshot.documents.map((doc) async {
final snapshot = await doc['user'].get();
User(id: snapshot["id"], name: snapshot["mail"]);
}).toList{growable: true};
Run Code Online (Sandbox Code Playgroud)
我这样做的问题是它说:无法将List <Future <Null >>类型的值赋给List <User>类型的变量。
所以我想知道是否有可能或唯一的方法是使用Future.forEach
要将期货列表变成单个期货,请使用Future.wait从dart:async。(也不要忘记返回用户对象)。
final List<User> = await Future.wait(querySnapshot.documents.map((doc) async {
final snapshot = await doc['user'].get();
return User(id: snapshot["id"], name: snapshot["mail"]);
}));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
796 次 |
| 最近记录: |