https.onRequest 的 Firebase 云函数并发承诺
Firebase cloud function concurrent promises for https.onRequest
在 Firebase 云函数中,有一个对数据库引用的 set
调用,以及对另一个引用的并发 once("value")
调用,两者都是 return 承诺。在 once
的 then
处理程序中还有一个 update
,并且该处理程序比 update
严格执行更多操作。
现在,这是一个 https.onRequest,所以我们不能 return 承诺,例如做不到 Promise.all([p1, p2]).then(blah blah blah)
。那么我们应该如何在保证异步调用完成的同时returnresponse.status(200).send(dictionary)
呢?
您基本上已经说明了解决方案:
Promise.all([p1, p2]).then(blah blah blah)
传递给 Promise.all()
的承诺列表应该包含您需要等待的所有承诺。在它说 "blah blah blah" 的地方,放置一个发送结果的函数:
results => {
response.status(200).send(dictionary)
}
可能还想使用 catch
发送错误响应,以防出现问题。
如果这不是您要查找的内容,请显示一些您实际尝试过的代码。
在 Firebase 云函数中,有一个对数据库引用的 set
调用,以及对另一个引用的并发 once("value")
调用,两者都是 return 承诺。在 once
的 then
处理程序中还有一个 update
,并且该处理程序比 update
严格执行更多操作。
现在,这是一个 https.onRequest,所以我们不能 return 承诺,例如做不到 Promise.all([p1, p2]).then(blah blah blah)
。那么我们应该如何在保证异步调用完成的同时returnresponse.status(200).send(dictionary)
呢?
您基本上已经说明了解决方案:
Promise.all([p1, p2]).then(blah blah blah)
传递给 Promise.all()
的承诺列表应该包含您需要等待的所有承诺。在它说 "blah blah blah" 的地方,放置一个发送结果的函数:
results => {
response.status(200).send(dictionary)
}
可能还想使用 catch
发送错误响应,以防出现问题。
如果这不是您要查找的内容,请显示一些您实际尝试过的代码。