我正在使用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