Promise.all 执行需要大量时间和大量承诺

时间:2021-07-05 19:39:42

标签: node.js google-cloud-storage firebase-storage

我正在尝试验证 Firebase 存储中是否存在文件列表。 文件数可以从 1 到 N(N 可以增长到 1000s/10000s)。

我有一个 Promise.all 代码执行所有这样的承诺:

const filePaths = [// 10000 of paths here];
const checkExistence = async (path) => bucket.file(path).exists();

const fileStatuses = await Promise.all(filePaths.map(checkExistence);

我注意到 filePaths 越长,Promise.all 解析所需的时间就越长。

我天真地认为它会在最长的通话时间内解决,但事实并非如此。 我认为与过多的并发调用有关,所以我尝试了批处理,但它并没有提高脚本的整体性能。

当前的等待时间可能在 90/180 秒左右。

谁能给我解释一下为什么?等待数千个异步请求的最有效(最快)解决方案是什么?

感谢您的帮助,

0 个答案:

没有答案