我正在使用Node/Express编写注册系统,我正在尝试使用Promise。中断承诺链 - 停止执行下一个'然后'
的问题是,我得到使用它们时的错误消息:
错误:
(node:64725) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2):
有没有办法停在then
?
auth.isRegistered(email)
.then((registered) => {
if (!registered) {
req.flash('pleaseRegister', 'Looks like you haven\'t registered. Please register first.');
req.session.user = user;
res.redirect('/register')
}
})
.then(() => {
return auth.isVerified(email);
})
.then((verified) => {
if (!verified) {
console.log('please verify');
res.redirect('/register/verify');
} else {
req.login(user, err => {
if (err) return next(err);
req.session.timestamp = Date.now();
auth.updateLastLogin(email)
.then(() => {
res.redirect(req.session.returnTo || '/account');
});
});
}
});
首先,你的错误看起来像是一个警告。其次,你有没有尝试在你的承诺中增加一个“catch”电话? –
'if' /'else'就像你在最后一次'then'回调中应该没问题,对'if(!registered)'做同样的处理。 – Bergi
哪个承诺被拒绝,有什么错误?你从来没有看到任何你创造的承诺的错误,所以这似乎是预料之中的。 – Bergi