Promissa saysA promise represents a future value — pending, then either fulfilled or rejected.
A Promise is a placeholder for a result that isn't ready yet. It starts pending, then settles once: fulfilled (with a value) or rejected (with an error). new Promise((resolve, reject) => …) creates one, but you'll mostly consume promises returned by APIs like fetch rather than build your own.
Power-ups you unlock
States: pending → fulfilled | rejected
Settles once, then is immutable
resolve(value) / reject(error)
You mostly consume them, rarely build them
Race Condition Rex attacks — common mistakes
Trying to "un-settle" a settled promise
Forgetting a promise can reject
Wrapping already-promise APIs in new Promise
Boss battleCreate a promise that resolves after a timeout and log its value.