Дартланг ждет более одного будущего

Я хочу что-то сделать после выполнения большой будущей функции, бу, я не знаю, как написать код в дротике? код, подобный этому:

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
}

как записать этот код в дротик?

Ответ 1

Вы можете использовать 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