約束が解決した後、どうして私の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を投げるのではなく、拒否すべきであるはい、私は私が唯一の開発中にERRを投げる、ということを見、いったん動作すれば、代わりに拒否します。 'catch(err)'は 'reject("エラーmsg ")'を返しますが、なぜ解決できないのか理解できません。 – torbenrudgaard