
A Promise represents a value that will be available in the future — either resolved (success) or rejected (failure). Chain .then() to handle success and .catch() to handle errors. Promises replaced callback hell and made asynchronous code dramatically more readable. They are the foundation of all modern async JavaScript including fetch().
Reference:
TaskLoco™ — The Sticky Note GOAT