title: Promise constructor with reject call vs throwing error
body: <p>In the following code:</p>
  
  <pre><code>var p1 = new Promise(function (resolve, reject) {
      throw 'test1';
  });
  
  var p2 = new Promise(function (resolve, reject) {
      reject('test2');
  });
  
  p1.catch(function (err) {
      console.log(err); // test1
  });
  
  p2.catch(function (err) {
      console.log(err); // test2
  });
  </code></pre>
  
  <p>Is there any difference between using <code>reject</code> (in <code>p2</code>) from the <code>Promise</code> api, and throwing an error (in <code>p1</code>) using <code>throw</code>?</p>
  
  <p>Its exactly the same?</p>
  
  <p>If its the same, why we need a <code>reject</code> callback then?</p>