A Promise represents a future value. It's either pending (waiting), fulfilled (success), or rejected (failed).
const promise = fetchData();
promise.then((data) => {
console.log("Success:", data);
});
promise.catch((error) => {
console.log("Failed:", error);
});
Promises flatten callback hell into a chain of .then() calls.