I'm not sure if I'm understanding a certain aspect of promises correctly and I couldn't find what I was looking for after a brief google/SO search.
Can a resolved promise returned to a rejected callback ever fire a resolved method later in the chain? Using jQuery deferreds (and it's deprecated pipe method) as an example:
x = $.Deferred();
x
  .then(null,function() {
     return $.Deferred().resolve();
  })
  .then(function() {
     console.log('resolved');
  },function() {
     console.log('rejected');
  });
The above code, logs rejected, I would've expected it to log resolved because the Deferred in the first error callback returns a resolved promise.
On the contrary, the same code using jQuery's deprecated pipe method logs, as I would've expected resolved. 
x = $.Deferred();
x
  .pipe(null,function() {
    return $.Deferred().resolve();
  })
  .pipe(function() {
     console.log('resolved');
  },function() {
     console.log('rejected');
  });
Am I thinking about something wrong by trying to resolve a promise inside a rejected callback?
