A past puzzle — fully playable. 4 attempts, hints on wrong guesses.
stdle-79.js
1Promise.resolve()
2.then(()=>{thrownewError('boom');})
3.catch(()=>'recovered')
4.then(v=>console.log(v));
Async
Answer & explanation
Console output
recovered
Why
Throwing inside a .then handler rejects the promise it returns, which routes to the next .catch. Because .catch returns "recovered" without re-throwing, the chain returns to a fulfilled state with that value. The final .then receives "recovered" and logs it.