const safe = Promise.reject('err')
.then(v => v)
.catch(e => 'caught: ' + e);
// resolves to 'caught: err'.catch chained after .then still catches rejections from earlier in the chain.
Chaining .then() and .catch() creates a chain of Promises.
Challenge: Verify that .catch() after .then() returns a Promise.