web-dev-qa-db-fra.com

Dartlang attend plus d'un avenir

Je veux faire quelque chose après beaucoup de futures fonctions, mais je ne sais pas comment écrire le code en fléchette? le code comme ceci:

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

mais je ne veux pas les attendre un par un:

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

comment écrire ces codes en fléchette?

33
bitnick

Vous pouvez utiliser Future.wait attendre une liste de futurs:

import 'Dart:async';

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

Exemple DartPad

46
Günter Zöchbauer