Javascript Firebase云功能:如何在不导致冷启动的情况下使可重试事件失败?

Javascript Firebase云功能:如何在不导致冷启动的情况下使可重试事件失败?,javascript,firebase,google-cloud-platform,google-cloud-functions,Javascript,Firebase,Google Cloud Platform,Google Cloud Functions,给定Firebase Cloud函数,为了在不导致冷启动的情况下重试事件,使事件失败的正确方法是什么 表明未处理的错误会导致冷启动。当使用异步功能时,我假设这也适用于被拒绝的承诺 抛出新错误“我让你失败了”;//如果未捕获,将导致冷启动 考虑到功能通常依赖于可能不是100%可靠的第三方服务,我不希望我的功能因短暂的下游错误而受到冷启动的进一步惩罚 这甚至是一个推荐的策略吗?我正在使用Firestore,因此我考虑将可重试事件存储在临时集合中,临时集合由计划的云函数刮取,但这似乎不必要地复杂。被拒

给定Firebase Cloud函数,为了在不导致冷启动的情况下重试事件,使事件失败的正确方法是什么

表明未处理的错误会导致冷启动。当使用异步功能时,我假设这也适用于被拒绝的承诺

抛出新错误“我让你失败了”;//如果未捕获,将导致冷启动

考虑到功能通常依赖于可能不是100%可靠的第三方服务,我不希望我的功能因短暂的下游错误而受到冷启动的进一步惩罚


这甚至是一个推荐的策略吗?我正在使用Firestore,因此我考虑将可重试事件存储在临时集合中,临时集合由计划的云函数刮取,但这似乎不必要地复杂。

被拒绝的承诺本身并不是一个未经处理的错误。您显示的是一个抛出的异常,与承诺没有任何直接关系。从函数回调中转义的抛出异常被视为未处理。如果需要故意使函数调用失败,只需返回一个被拒绝的承诺,不要像引用的示例代码现在所做的那样抛出任何东西

如有必要,可使用以下方法创建简单的拒绝承诺:


被拒绝的承诺本身不是未经处理的错误。您显示的是一个抛出的异常,与承诺没有任何直接关系。从函数回调中转义的抛出异常被视为未处理。如果需要故意使函数调用失败,只需返回一个被拒绝的承诺,不要像引用的示例代码现在所做的那样抛出任何东西

如有必要,可使用以下方法创建简单的拒绝承诺:

return Promise.reject(new Error('fail'))