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