Я использую библиотеку Promise bluebird. Я хотел бы привязать promises и уловить определенные ошибки promises. Вот что я делаю:
getSession(sessionId)
.catch(function (err) {
next(new Error('session not found'));
})
.then(function (session) {
return getUser(session.user_id);
})
.catch(function (err) {
next(new Error('user not found'));
})
.then(function (user) {
req.user = user;
next();
});
Но если ошибка вызывается getSession, вызываются две catch, а также вторая then. Я хотел бы остановить распространение ошибки на первом catch, так что второй catch вызывается только тогда, когда getUser бросает, а второй then, когда getUser преуспевает. Что делать?