【发布时间】:2020-06-30 22:39:39
【问题描述】:
到目前为止,我所做的工作是一个接一个地调用每个未来。所有这些都添加到列表中。 但是,有时其中一个 API 可能无法工作,因此尚未加载的其余 API 会成为瓶颈。我想同时启动所有期货,并让它们全部并行运行以填充列表,因为结果来自它们中的任何一个。我怎样才能做到这一点?
TLDR:dart/flutter 中的多线程?
【问题讨论】:
标签: multithreading flutter dart
到目前为止,我所做的工作是一个接一个地调用每个未来。所有这些都添加到列表中。 但是,有时其中一个 API 可能无法工作,因此尚未加载的其余 API 会成为瓶颈。我想同时启动所有期货,并让它们全部并行运行以填充列表,因为结果来自它们中的任何一个。我怎样才能做到这一点?
TLDR:dart/flutter 中的多线程?
【问题讨论】:
标签: multithreading flutter dart
如果你有 3 个期货要并行执行:
Future<int> async1() async {
await Future<String>.delayed(const Duration(seconds: 1));
return 10;
}
Future<int> async2() async {
await Future<String>.delayed(const Duration(seconds: 2));
return 20;
}
Future<int> async3() async {
await Future<String>.delayed(const Duration(seconds: 3));
return 30;
}
您可以并行执行它们并通过执行以下操作等待所有它们完成:
Future.wait([async1(), async2(), async3()]).then((List<int> nums) {
// This code executes in 3 seconds (3 endpoints in parallel)
});
【讨论】: