firebaseonCall云函数未返回结果



我的可调用函数如下所示:

exports.function = functions.https.onCall((data, context) => {
let result1, result2;
async function function1() {
return 1;
}
async function function2() {
return 2;
}
return Promise.all([
result1 = function1(),
result2 = function2()
])
.then(() => {
console.log(result1);
console.log(result2);
return {
result1: result1,
result2: result2
}
}) 
})

我在客户端得到的result1和result2没有任何值,只有一个名为domain的字段。我的云功能出了什么问题?

日志输出

Promise {
1,
domain: 
Domain {
domain: null,
_events: { error: [Function] },
_eventsCount: 1,
_maxListeners: undefined,
members: [] } } 
Promise {
2,
domain: 
Domain {
domain: null,
_events: { error: [Function] },
_eventsCount: 1,
_maxListeners: undefined,
members: [] } } 

您正在捕获function1function2返回的承诺,并尝试将它们直接发送到客户端。这行不通。您需要在Promise.all()返回的promise的回调中获取它们已解析的值。

return Promise.all([
function1(),
function2()
])
.then((result1, result2) => {
console.log(result1);
console.log(result2);
return {
result1: result1,
result2: result2
}
}) 

请注意,您甚至不需要在更高的范围中声明result1和result2。

相关内容

  • 没有找到相关文章

最新更新