sr✳SHUBHAM RAJFRONTEND ENGINEER
FULL TECHNICAL GUIDEIntermediate3 min read

What is a Promise in JavaScript?

A Promise represents an asynchronous result that is pending, fulfilled or rejected.

JavaScript#promises#async
THE ANSWER / PLAIN ENGLISH

The idea to remember.

A Promise represents an asynchronous result that is pending, fulfilled or rejected. Use then/catch or async/await to handle its completion without blocking JavaScript execution.

From first example to real project.

Start with the smallest working idea, examine a more detailed example, then look at a real application pattern. Adapt dependencies, error handling and data models to your project.

Basic: promise resolution

01 / BEGINNER

Promise callbacks run after synchronous code.

JAVASCRIPT / EXAMPLE
console.log('A');
Promise.resolve().then(() => console.log('C'));
console.log('B'); // A, B, C

Intermediate: await and errors

02 / INTERMEDIATE

Handle unsuccessful HTTP responses as well as rejected requests.

JAVASCRIPT / EXAMPLE
async function loadUser(id) {
  const response = await fetch('/api/users/' + id);
  if (!response.ok) throw new Error('Unable to load user');
  return response.json();
}

Real scenario: parallel independent calls

03 / REAL SCENARIO

Promise.all starts independent calls together and handles failures.

JAVASCRIPT / EXAMPLE
async function loadDashboard() {
  const [account, activity] = await Promise.all([
    fetch('/api/account').then(r => { if (!r.ok) throw Error('Account'); return r.json(); }),
    fetch('/api/activity').then(r => { if (!r.ok) throw Error('Activity'); return r.json(); })
  ]);
  return { account, activity };
}

Try it in your own words.

Explain what is a Promise in JavaScript without looking at the code. Then modify the intermediate example, describe one trade-off and identify when the real-world pattern fits.

Keep learning here.

Explore more in-depth guides, exercises and related interview questions in this library.

Browse JavaScript study guides ↗
← Back to question library

Have something
in mind?

Start a conversation