我正在尝试执行某些功能,具体取决于我从app.rutine中的数据库中获取的内容:
donotmatchME!
apple2000@
Gpa1
abc01A
如图所示尝试将函数的返回推入counts Array
但是我不断收到Promise {}或Promise {undefined}
这是setRutine异步函数:
return Promise.all(finalApps.map(app => {
return counts.push(setRutine(**app.rutine**));
}))
这是countUsers()函数,如果它从数据库中获取的信息是countUsers会返回一个承诺
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 "";
}
}
谢谢您的帮助!
答案 0 :(得分:2)
您必须从setRutine
返回一些信息,可能是诺言的结果:
return await countUsers() /*...*/
答案 1 :(得分:0)
感谢您的所有回答,大家都为我提供了一些帮助,以便更好地理解我的问题,而道格·史蒂文森(Doug Stevenson)是对的,我将setRutine函数更改为返回Promise而不是异步函数。
我发布代码:
function setRutine(nameF) {
return new Promise( (resolve, reject) => {
if(nameF == "countUsers") {
return countUsers().then((count) => {
resolve(count);
}).catch((error) => {
reject(error);
})
}
});
}