Promissa saysConsume promises with .then (success), .catch (error), and .finally (cleanup).
promise.then(onFulfilled) runs on success and returns a new promise, so .then calls chain. .catch(onError) handles any rejection in the chain above it; .finally(fn) runs either way. Returning a value (or promise) from a .then passes it down the chain — that's how you sequence async steps cleanly.
Power-ups you unlock
.then(onFulfilled) chains; returns a new promise
.catch handles rejections up the chain
.finally runs regardless (cleanup)
Return from .then to pass values down
Race Condition Rex attacks — common mistakes
Forgetting .catch (unhandled rejection)
Not returning inside .then (chain breaks)
Nesting .then instead of chaining
Boss battleChain two .then steps and a .catch on a resolving promise.