【问题标题】:Should I return a promise after I await?在等待之后我应该返回一个承诺吗?
【发布时间】:2021-01-04 04:07:50
【问题描述】:

在 firebase 文档中,他们说您应该在异步操作后返回一个承诺

“要在异步操作后返回数据,请返回一个承诺。”

https://firebase.google.com/docs/functions/callable#sending_back_the_result

在示例中,他们使用 then 在异步操作完成后向客户端返回消息。但是当我使用等待时呢?我可以只返回一个对象,还是必须将它包装在一个 Promise 中?

const response = await fetch('ttps://sandbox.itunes.apple.com/verifyReceipt', options);

if (response.status === 200)
    return {
        status: 200,
        message: "Subscription verification successfuly!"
    }

if (response.status === 200)
    return Promise.resolve({
        status: 200,
        message: "Subscription verification successfuly!"
    });

【问题讨论】:

    标签: firebase google-cloud-functions


    【解决方案1】:

    异步函数隐式返回 Promise。因此,无需手动执行此操作。这应该可以正常工作:

    const fetchData = async () => {
       const response = await fetch('https://sandbox.itunes.apple.com/verifyReceipt', options);
    
       if (response.status === 200)
         return {
            status: 200,
            message: "Subscription verification successfuly!"
        }
       else
          return null
    }
    

    实际上,函数fetchData实际上返回Promise<any>,因为它被标记为异步

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 2020-12-18
      • 1970-01-01
      • 2017-02-03
      • 2022-01-09
      • 2018-08-17
      • 1970-01-01
      相关资源
      最近更新 更多