Я использую библиотеку 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
преуспевает. Что делать?