【问题标题】:Returning VS NOT returning a promise in firebase cloud function [closed]在firebase云功能中返回VS未返回承诺[关闭]
【发布时间】:2017-12-15 09:58:19
【问题描述】:

我正在创建一个 Firebase 云函数,该函数通过对每个事件进行 http 调用将事件路由到另一个系统。 我注意到,如果我不返回承诺,http 大部分时间都会被调用(不能 100% 确定)。我不在乎回应

如果我不返回它,执行时间会大大减少。 (155ms vs 13ms)

有谁知道是否保证执行未返回的承诺?

【问题讨论】:

  • 你不能试试吗?
  • 有人知道为什么会这样Execution time decreases substantially if I don't return it. 吗?

标签: javascript firebase google-cloud-functions


【解决方案1】:

如果您的函数没有返回 Promise,它可能会被 Cloud Functions 过早地杀死。 此外,您可能会在控制台中遇到类似的情况: Function execution took 60023 ms, finished with status: 'timeout' 当函数没有向 Cloud Functions 返回 Promise 时,就会发生这种情况。

【讨论】:

    【解决方案2】:

    除了 HTTPS 类型的函数之外的所有类型的函数都需要您 return a promise,这在异步工作完成后会被解析。如果您不这样做,则无法保证您的工作会完成,因为 Cloud Functions 运行时可能会在工作完成之前清理您的函数。

    不管你是否关心工作的响应或结果,你仍然应该等到它完成后才允许你的函数终止。

    【讨论】:

    • 如果我返回一个已解决的承诺,以同样的方式工作吗?
    猜你喜欢
    • 2020-03-21
    • 1970-01-01
    • 2019-12-17
    • 1970-01-01
    • 2018-09-27
    • 2017-09-25
    • 2023-04-01
    • 2018-04-19
    • 2017-03-11
    相关资源
    最近更新 更多