达特朗等待不止一个未来

问题描述 投票:14回答:1

我想在未来的很多功能完成后做点什么,但我不知道如何在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中编写这些代码?

dart future
1个回答
33
投票

您可以使用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 example

© www.soinside.com 2019 - 2024. All rights reserved.