2017-02-11 53 views
6

Chcę coś zrobić po wielu przyszłych funkcjach, bu nie wiem jak napisać kod w dart? kod tak:Dartlang czekaj więcej niż jedną przyszłość

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

ale nie chcę czekać je jeden po drugim:

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

Jak napisać kod w tych dart?

Odpowiedz

8

Można użyć Future.wait czekać na liście futures:

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

Można użyć 'map' także:' czekają Future.wait (data.map ((d) = > d.loadData())) '. – lrn