gpt4 book ai didi

dart - Dart-定义 future 列表而不调用它们

转载 作者:行者123 更新时间:2023-12-03 04:12:50 26 4
gpt4 key购买 nike

我想用Future填充以下变量以传递给Future.wait

final List<Future<JSONData>> futures = [];
我需要从动力学上定义上面列表的内容,我目前正在做这样的事情:
idsAndUrls.forEach((id, url) {
futures.add(_downloadImage(id, url));
});
每次都会运行 _downloadImage(),这是正常的。因此,在 Future.wait上调用 futures是没有用的。
我应该如何仅将对 futures函数的引用添加到 _downloadImage中而不调用它,而稍后在Future.wait中调用它呢?

最佳答案

如果要准备加载图像但不加载,则应在列表中存储一个函数,而不是将来的函数。

final List<Future<JSONData> Function()> loaders = [
for (var e in idsAndUrls.entries) () => _downloadImage(e.key, e.value)
];
这为每个ID / URL对存储一个函数,然后您可以稍后在列表中浏览并立即调用这些函数:
await Future.wait(loaders.map((f) => f());

关于dart - Dart-定义 future 列表而不调用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63703865/

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