Firebase Cloud Functions /每个then()应该返回一个值或抛出promise / always-return

时间:2019-04-06 23:20:40

标签: firebase firebase-realtime-database google-cloud-functions

我一直在遵循有关承诺(https://www.youtube.com/watch?v=7IkUgCLr5oA)的官方Firebase教程,但就我而言,我无法使其成功。

const promise = userRef.push({text:text});

const promise2 = promise.then((snapshot) => {
    res.status(200).json({message: 'ok!'});
});

promise2.catch(error => {
    res.status(500).json({message: 'error'});
});

我在做什么错?万一出现问题,每个then()应该都有其响应,但这就是为什么我要编写promise2 catch的原因。

1 个答案:

答案 0 :(得分:0)

只需在发送响应之前添加return

const promise = userRef.push({text:text});

const promise2 = promise.then((snapshot) => {
    return res.status(200).json({message: 'ok!'});
});

promise2.catch(error => {
    return res.status(500).json({message: 'error'});
});

您还可以按如下方式链接承诺:

return userRef.push({text:text})
.then((snapshot) => {
    return res.status(200).json({message: 'ok!'});

}).catch(error => {
    return res.status(500).json({message: 'error'});
});