gpt4 book ai didi

dart - 在 Dart 中选择 Future 或 waitAny?

转载 作者:行者123 更新时间:2023-12-04 19:31:24 24 4
gpt4 key购买 nike

我明白 Future.wait获取 future 列表并在列表中的所有 future 都完成后返回已完成 future 的列表。

Dart 有没有办法阻止并等待列表中的任何 future 完成而不是等待它们全部完成?

最佳答案

并不真地。我们可以添加一个 Future.waitAny (其中现有的隐式是 waitAll )。

功能很简单:

Future waitAny(Iterable<Future> futures) {
var completer = new Completer();
for (var f in futures) {
f.then((v) {
if (!completer.isCompleted) completer.complete(v);
}, onError: (e, s) {
if (!completer.isCompleted) completer.completeError(e, s);
});
}
return completer.future;
}

它确实忽略了所有其他 future 的任何错误。另一方面,它也忽略了非错误结果,所以我想这很好。

当我们不再关心结果时,我们缺乏取消 future 的方法。

关于dart - 在 Dart 中选择 Future 或 waitAny?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34126278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com