JavaScript Fundamentals · Async JavaScript · Lesson 27 of 48
Promises
Concept
Promises
A Promise represents a value that will be available now, later, or never. then() handles success and catch() handles failure.
A Promise is always in one of three states — pending, fulfilled, or rejected — and once it settles into fulfilled or rejected, it never changes state again.
By the end of this lesson
- Explain the core idea behind Promises.
- Predict output before running a change.
- Test one realistic and one unusual input.
- Use the result to make the next decision.
How to study this page
- 1. Read one concept.
- 2. Change the example.
- 3. Run, compare, and explain.
- 4. Complete the challenge below.
Syntax
new Promise((resolve, reject) => {
// resolve(value) on success
// reject(error) on failure
})
.then((value) => {})
.catch((error) => {});ExampleRunnable
const fetchData = new Promise((resolve) => {
setTimeout(() => resolve("Data loaded"), 500);
});
fetchData.then((data) => console.log(data));Try it Yourself »Handling a rejected Promise
const risky = new Promise((resolve, reject) => {
reject(new Error("Something failed"));
});
risky.catch((error) => console.log(error.message));Self-check before continuing
Without looking at the example, describe what changes when you modify one input in Promises. Then reopen the editor and prove your explanation with a small test.
You are ready to continue when you can predict, test, and explain the result.
Your turn
Write a Promise that resolves with your name after 1 second.
Loading editor…
Console