Firebase 云函数 - 承诺:对可以添加到 Promise.all() 的“承诺”数量有任何限制吗?

Wha*_*ame 5 javascript promise firebase google-cloud-functions google-cloud-firestore

所以 Promise.all() 确实让生活变得更简单。

但是对可以添加到“Promise.all()”的承诺数量有任何限制吗?

即以下代码中的数组“promises”的大小是否有任何限制:-

const promises = [];

    snapshot.forEach(doc => {

        **some code**

        promises.push(
            docRef.set(newData, {merge: true})
        );

    });

    return Promise.all(promises);
Run Code Online (Sandbox Code Playgroud)

-------------------------------------------------- --------------------

进一步澄清:

我正在使用此云功能更新我的应用程序上的所有用户。

模型数据库结构: Users/userId

由于用户数量很少,我现在没有遇到任何问题。

但是,随着用户数量的增加,我担心我是否会遇到一些限制。

并根据以下人员指出的问题:

1) david - 浏览器的最大并发 Web 请求会减慢速度

2)herohtar - 您的函数可用的内存有限

这两个问题表明,也可能存在一些限制。

因此,如果你们可以对相同的内容有所了解,那么任何人都可以指向相同的官方文档或来自 Firebase 团队的任何人。

Dou*_*son 3

如果此函数必须扩展到大量用户,那么在超出承诺数量的任何限制之前,几乎肯定会遇到更多超出函数内存和时间限制的问题。我强烈建议您仔细考虑是否真的想在 N 可能非常大的函数中加载并执行 N 个任务。这不是 Cloud Functions 的用途。

如果您确实需要以可扩展的方式执行 N 个任务,并且必须使用 Cloud Functions,请考虑将您的工作分解为可管理、可预测的大小,并将工作分片为多个函数调用。