title: different redirects during different promise fails causes Error: cannot call http.ServerResponse.end()
body: <p>I have a chain of promises that could fail at different points.  Depending on where it fails, I might want it to do different things.  In some places I might want to render a page, other places redirect.  The problem I'm finding is when it runs through all the fail functions and then has errors with http.ServerResponse.end() being called numerous times.</p>
  
  <p>Example:</p>
  
  <pre><code>Parse.Promise.as(1).then(function() {
      if (apples) {
          return apples.fetch().fail(function() { res.redirect('/somewhere') } );
      } else {
          return {};
      }
  }).then(function() {
      // doing other stuff
  },function() {
      res.redirect('/elsewhere');
  }).fail(function() {
      res.render('error.ejs');
  });
  </code></pre>
  
  <p>Should I be doing this a different way?</p>
  
  <p>( I start with as(1) just to get into the promise chain since there are two different starting cases of apples and !apples that both need to continue to the next part of the chain, but only one of them could start the chain since {} can't. Not sure if that's the best way to do that either. )</p>