在承諾解決後,我如何在我的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();
您應該拒絕,而不是拋出一個錯誤 –
@Jonasw是的,我看到了,我只在開發過程扔錯了,一旦工作,我拒絕。 'catch(err)'得到'reject(「錯誤信息」),但我不明白爲什麼解決不了。 – torbenrudgaard