Promises

JavaScript

var p2 = new Promise(function(resolve, reject) {
  resolve('Success 2');
});

p2.then(function(value) {
  console.log(value); // "Success!"
  Promise.reject('oh, no 2!');
}, function () {
  console.log('Reject1');
}).then(function(value){
  console.log('What', value);
}).catch(function(e) {
  console.log(e); // "oh, no 4!"
  
});

/*
var p3 = new Promise(function(resolve, reject) {
  resolve('Success 3');
});

p3.then(function(value) {
  console.log(value); // "Success!"
  throw 'oh, no 4!';
}).catch(function(e) {
  console.log(e); // "oh, no 4!"
  return Promise.reject('fuck')
}).then(function(value){
  console.log('What', value);
}, function (err) {
  console.log('Reject2',err);
});*/