Tha*_*vam 0 mongoose node.js async-await ecmascript-6
比较用户登录请求的密码。使用async 和 await等待获得实际响应。
我希望它按照以下顺序运行 1,2,3,4(console.log 的顺序)
但它执行为 1, 3, 4, 2. 请帮忙。
脚本不等待comparePassword
async login(request){
let response = await User.findOne({ email: request.email }, async (err, user) => {
if (err) throw err;
console.log('1');
let isMatch = await user.comparePassword(request.password, (err, isMatch) => {
console.log('2');
if (err) throw err;
request.isMatch = isMatch;
});
console.log('3');
return request;
});
console.log('4');
console.log('response', response);
}
Run Code Online (Sandbox Code Playgroud)
如果您使用async/ await,则您使用的是承诺,并且您不得将回调传递给猫鼬方法。如果你没有通过,他们会回复你可以的承诺await。你正在寻找
async login(request){
let response = await User.findOne({ email: request.email });
console.log('1');
let isMatch = await user.comparePassword(request.password);
console.log('2');
request.isMatch = isMatch;
console.log('3');
return request;
console.log('4');
console.log('response', response);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
754 次 |
| 最近记录: |