In the following 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
});
Is there any difference between using reject (in p2) from the Promise api, and throwing an error (in p1) using throw?
Its exactly the same?
If its the same, why we need a reject callback then?
 
     
     
     
     
     
    