gpt4 book ai didi

javascript - 调用包含 Promise 的 Async 函数返回未定义

转载 作者:太空宇宙 更新时间:2023-11-04 03:19:33 24 4
gpt4 key购买 nike

我正在尝试根据我从 app.rutine 中的数据库中获取的内容来执行某些功能:

return Promise.all(finalApps.map(app => {
return counts.push(setRutine(**app.rutine**));
}))

并尝试将函数的返回值插入计数数组内,如图所示

但我不断收到 Promise { } 或 Promise { undefined }

这是 setRutine 异步函数:

async function setRutine(nameF) {
if(nameF == "countUsers") {
console.log("YES; IT IS");
await countUsers().then((count) => {
console.log("FROM IF STATEMENT: " + count);
return count;
})
} else {
return "";
}
}

如果从数据库获取的信息是返回 Promise 的 countUsers,那么它会调用 countUsers() 函数

function countUsers() {
var db = admin.firestore();
var usersRef = db.collection('users');

var count = {};

return new Promise ((resolve, reject) => {
return usersRef.get().then(function(querySnapshot) {
count.size = querySnapshot.size;
count.id = "1";
})
.then(() => {
console.log("FROM countFunction: " + count);
resolve(count);
})
.catch((error) => {
reject(error);
})
});
}

感谢您的帮助!

最佳答案

你必须从 setRutine 返回一些东西,可能是 promise 结果:

 return await countUsers() /*...*/

关于javascript - 调用包含 Promise 的 Async 函数返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51938268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com