Verkettung verspricht mit dann und fangen

Ich bin mit dem bluebird Versprechen-Bibliothek. Ich möchte die Kette verspricht und fangen bestimmte Verheißungen Fehler. Hier ist, was ich Tue :

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();
  });

Aber wenn ein Fehler geworfen wird, durch getSession die beiden catch genannt werden, sowie die zweite then. Ich möchte aufhören, die Fehlerfortpflanzung bei der ersten catchso dass die zweite catch wird nur aufgerufen, wenn getUser wirft, und die zweite then wenn getUser gelingt. Was tun?

InformationsquelleAutor der Frage Alexandre Kirszenberg | 2014-07-07

Schreibe einen Kommentar