let p1 = new Promise(function(resolve, reject) {
   resolve(42);
});
let p2 = new Promise(function(resolve, reject) {
   reject(43);
});
p1.then(function(value) {
   // first fulfillment handler
   console.log(value); // 42
   return p2;
}).catch(function(value) {
   // rejection handler
   console.log(value); // 43
});