收到错误 每个then()应该返回一个值或抛出我的Firebase函数



我的Firebase函数中Each then() should return a value or throw出错,在这里我放了整个代码,任何人都可以查看它并帮助我解决此问题吗?

exports.test_groups_list = functions.https.onRequest((req, res) => {
api.call('Get', { typeName: 'Group', resultsLimit: 100 })
.then(result => {
res.set({ 'Access-Control-Allow-Origin': '*' }).send(result)
})
.catch(error => {
res.set({ 'Access-Control-Allow-Origin': '*' }).send(error)
});
});

您的HTTPS云函数代码确实遵循文档或官方视频中提供的规则/建议。

错误消息来自以下事实:eslint检测到您有一个then()处理程序,该处理程序可以在不返回值或引发错误的情况下完成。

您可以在发送回响应后返回null,如下所示:

exports.test_groups_list = functions.https.onRequest((req, res) => {
api.call('Get', { typeName: 'Group', resultsLimit: 100 })
.then(result => {
res.set({ 'Access-Control-Allow-Origin': '*' }).send(result)
return null
})
.catch(error => {
res.set({ 'Access-Control-Allow-Origin': '*' }).send(error)
return null
});
});

您的 api 调用then返回一个包装promise的值,因此您必须首先返回promise,然后在下一部分返回response

exports.test_groups_list = functions.https.onRequest((req, res) => {

let _result= api.call('Get', { typeName: 'Group', resultsLimit: 100 })
.then(result => {
return result
})
.catch(error => {
return error
});
_result.then(data=>{
res.set({ 'Access-Control-Allow-Origin': '*' }).send(data)
})     
});

相关内容

  • 没有找到相关文章

最新更新