2017-02-11 58 views
6

我想在未来完成很多功能之后做一些事情,我不知道如何在dart中编写代码? 了这样的代码:Dartlang等待不止一个未来

for (var d in data) { 
    d.loadData().then() 
} 
// when all loaded 
// do something here 

,但我不想等待他们逐个:

for (var d in data) { 
    await d.loadData(); // NOT NEED THIS 
} 

如何编写镖的代码?

回答

8

您可以使用Future.wait等待期货的列表:

import 'dart:async'; 

Future main() async { 
    var data = []; 
    var futures = []; 
    for (var d in data) { 
    futures.add(d.loadData()); 
    } 
    await Future.wait(futures); 
} 

DartPad example

+3

你可以用'map'以及:'等待Future.wait(data.map((d)= > d.loadData()))'。 – lrn