在返回结果之前,我如何确保mongoose查询已经完成



我有这个代码来获取游戏中的库存:

async function(username) {
return await User.findOne({ username: username }).lean().inventory;
}

目前,我在应该返回数据的套接字中运行此函数:

socket.on('give inventory', function() {
console.log(connections[socket.id])
itemmanage.getInventory(connections[socket.id]).then(function(result) {
console.log(result);
socket.emit("get inventory", result);
})
});

但是,这不会返回数据。相反,它只是返回undefined。如何使它返回数据而不是未定义的数据?我尝试过的所有操作仍然返回未定义的结果。

async function(username) {
const data = await User.findOne({ username: username }).lean();
return data.inventory;
}
socket.on('give inventory', async function() {
try{
console.log(connections[socket.id])
const result = await itemmanage.getInventory(connections[socket.id]);
console.log(result);
socket.emit("get inventory", result);
}catch(err){
//code for handleing error 
}
});

最新更新