我的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)
})
});