这是我目前的代码
function resolveAfter1() {
return new Promise((resolve, reject) => {
var scoresFromDb = db.account.find({}, { username: 1, score: 1 }).toArray(function(err, result) {
if (err)
reject(err);
else
resolve(result);
});
});
}
resolveAfter1() // resolve function
.then((result)=>{console.log(result);})
.catch((error)=>{console.log(error);})
async function asyncCall() {
var result = await resolveAfter1();
// console.log(result);
}
当我执行套接字发出时,我得到[object Object]而不是值,这是我在服务器上的Emit
socket.emit('allScores', asyncCall());
然后这是我在客户端HTML上的socket.on
socket.on('allScores', function(data){
console.log(data);
})
我在Chrome控制台中得到的答案就是这个
{}
任何人都可以告诉我为什么它不会像这样显示asyncCall()吗?这是我在服务器中得到的完美,但是当我发出并接收到套接字时,我不明白这个?
[ { _id: 5a7c6552380e0a299fa752d3, username: 'test', score: 44 } ]