gpt4 book ai didi

javascript - 异步 promise 不返回结果

转载 作者:行者123 更新时间:2023-12-03 04:04:53 24 4
gpt4 key购买 nike

为什么在 promise 解决后我没有在我的 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();

最佳答案

查找用户应该返回某物:

async function findUser(userID, userType) {
return await new Promise((resolve, reject) => {
...
});
}

如果您确实await findUser(),那么您正在等待异步函数返回。您的异步函数返回未定义。

<小时/>

顺便说一句:您可能根本不使用异步函数:

function findUser(userId,userType){
return new Promise(...);
}

关于javascript - 异步 promise 不返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44605538/

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