我是nodejs的初学者,这个函数返回"Promise {pending}“,感谢大家的帮助。谢谢
async function getCurrentUser(id){
try{
let user = User.findOne({id:id})
return user;
}catch(err){
return err;
}
}
发布于 2020-08-26 14:55:05
您缺少某些返回Promise
的函数前面的await
let user = await User.findOne({id:id})
Promise
是一个不可变的异步操作,需要时间才能完成,因此您可以像以前那样使用async/await
,也可以像这样使用.then
调用来链接promise
User.findOne({ id })
.then((response) => {
// do sth with the resposne
});
推荐您阅读YDKJS
系列中的Async & Performance
完全重写代码:
async function getCurrentUser(id) {
try {
let user = await User.findOne({ id: id })
return user;
} catch (err) {
return err;
}
}
// getCurrentUser usage
async function doSth(){
let user = await getCurrentUser();
}
使用说明:
将async
放在函数前面使此函数返回类型为promise,无论您在其中返回的是什么,因此使用此类函数的两种方法就像使用promise
一样:使用await
在另一个async
函数中使用它,或者使用.then()
链接函数
发布于 2020-08-26 14:54:59
U缺少等待
async function getCurrentUser(id){
try{
let user = await User.findOne({id:id})
return user;
}catch(err){
return err;
}
https://stackoverflow.com/questions/63592041
复制相似问题