【发布时间】:2020-03-15 18:33:08
【问题描述】:
我对异步的东西还很陌生,而且我更喜欢这个。
我正在尝试通过 mongoose 获取 mongo 查询的结果,将其与另一个值进行比较,然后从 run() 函数返回比较结果。
async run() {
const thisHash = await this.getHashOfElement(url, '.edit-text');
var latestHash;
await Invitation.findOne().sort('-updated').exec(async (e, record) => {
if(record != undefined) {
const latestInvitation = record;
latestHash = latestInvitation.hash;
console.log("latestHash inside");
console.log(latestHash);
} else{
throw e;
}
});
console.log('latestHash outside:');
console.log(latestHash);
return latestHash === thisHash;
}
run() 函数总是返回 false,因为在进行比较时它认为 latestHash 是未定义的。
我以为它会等到 findOne() 完成,因为我把 await 放在它前面,然后执行比较。但是外部控制台日志出现在内部之前,并且是未定义的。
我需要做什么?
谢谢!
【问题讨论】:
标签: javascript mongodb asynchronous mongoose async-await