Javascript getting error Each then()应返回一个值或抛出我的firebase函数
我发现错误Javascript getting error Each then()应返回一个值或抛出我的firebase函数,javascript,node.js,firebase,google-cloud-functions,Javascript,Node.js,Firebase,Google Cloud Functions,我发现错误Each then()应该返回一个值或在我的firebase函数中抛出,在这里我已经把我的全部代码都放进去了,有人能帮我解决这个问题吗 exports.test_groups_list = functions.https.onRequest((req, res) => { api.call('Get', { typeName: 'Group', resultsLimit: 100 }) .then(result => { re
Each then()应该返回一个值或在我的firebase函数中抛出,在这里我已经把我的全部代码都放进去了,有人能帮我解决这个问题吗
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)
});
});
您的api调用然后
返回一个promise
包装值,因此您必须首先返回
承诺
然后在下一部分返回响应
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)
})
});
您的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
});
});
这将导致_result.then(data=>{line)的相同错误