title: bluebird - promise order when returning another promise
body: <p>I'm trying to make this code execute the console.logs in order (test1, test2, test3). Now it's test1,test3, test2. I was expecting that the second then() would wait for the resolve() function before starting, but it's not working :)</p>
  
  <pre><code>var bluebird = require('bluebird');
  
  var promise = bluebird.resolve(true);
  promise.then(function() {
    return new bluebird(function(resolve, reject) {
      console.log("test1");
  
      setTimeout(function() {
        console.log("test2");
        resolve();
      }, 3000);
    });
  });
  
  promise.then(function() {
    console.log("test3");
  });
  </code></pre>
  
  <p><a href="http://requirebin.com/?gist=7ba0a8500400bfa7fd22" rel="nofollow">http://requirebin.com/?gist=7ba0a8500400bfa7fd22</a></p>