web-dev-qa-db-ja.com

ダートランは複数の未来を待つ

将来の関数がたくさん終わった後で何かしたいのですが、dartでコードを書く方法がわかりませんか?このようなコード:

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
}

dartでこれらのコードを記述する方法?

33
bitnick

Future.waitを使用して、先物のリストを待つことができます。

import 'Dart:async';

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

DartPadの例

46