在承诺结算后,我的res
怎么没有得到价值?
我的console.log看起来像这样:
=====!!USER NOT FOUND!!=====
Res: undefined
这是我的功能
async function findUser(userID, userType) {
await new Promise((resolve, reject) => {
usersTable.findOne (
{ _id: userID }
,function (err, data) {
if (err) {
throw new Error('findUser: ' + err);
} else {
if (!data) {
console.log("=====!!USER NOT FOUND!!=====")
resolve("NEW");
} else {
console.log("=====USER FOUND=====")
resolve("OK");
};
};
});
})};
这是我的来电者
async function main() {
var res = "";
try {
// Find the user
res = await findUser(userEmail, "tenant");
console.log("Res: " + res );
if (res == "NEW") {
res = await newUser(); // Add the new tenant
}
}
catch(err) {
console.error(err);
console.log(" newBooking: " + err);
callback( { error:true, err } );
}
}
main();
答案 0 :(得分:1)
查找用户应该返回某事:
async function findUser(userID, userType) {
return await new Promise((resolve, reject) => {
...
});
}
如果你等待findUser()你等待异步函数返回sth。您的异步函数返回undefined。
顺便说一句:您可能根本不使用异步功能:
function findUser(userId,userType){
return new Promise(...);
}