Advance JavaScript (DOM, BOM, Web API) / Asynchronous JavaScript

Promise Methods

Promise.resolve()

✔ What it does

Creates an already resolved promise.

✔ Example

const p = Promise.resolve("Success!");

p.then(res => console.log(res));
Success!

✔ Use Case

  • Convert normal values into promises

  • Testing async flow

  • Return resolved values inside async functions


Promise.reject()

✔ What it does

Creates an already rejected promise.

✔ Example

const p = Promise.reject("Something went wrong!");

p.catch(err => console.log(err));
Something went wrong!

Promise.all()

✔ What it does

Runs multiple promises in parallel → Returns only if all succeed.

✔ Example

const p1 = Promise.resolve(10);
const p2 = Promise.resolve(20);
const p3 = Promise.resolve(30);

Promise.all([p1, p2, p3])
  .then(result => console.log(result))
  .catch(err => console.log("Error:", err));
[10, 20, 30]

❗ If one promise fails

Promise.all([
  Promise.resolve("A"),
  Promise.reject("Failed"),
  Promise.resolve("C")
]).catch(err => console.log(err));
Failed

Promise.allSettled()

✔ What it does

Waits for all promises, even if some fail.

Returns the status of each promise.

✔ Example

const p1 = Promise.resolve("OK");
const p2 = Promise.reject("Error occured");
const p3 = Promise.resolve("Done");

Promise.allSettled([p1, p2, p3])
  .then(result => console.log(result));
[
  { status: 'fulfilled', value: 'OK' },
  { status: 'rejected', reason: 'Error occured' },
  { status: 'fulfilled', value: 'Done' }
]

✔ Use Case

  • When you want all results, not just successful ones (e.g., polling multiple APIs)


Promise.race()

✔ What it does

Returns the first promise that settles

(fulfilled or rejected).

✔ Example

const p1 = new Promise(resolve => setTimeout(() => resolve("Fast!"), 500));
const p2 = new Promise(resolve => setTimeout(() => resolve("Slow"), 1500));

Promise.race([p1, p2]).then(console.log);
Fast!

❗ If first settles with rejection

Promise.race([
  Promise.reject("Failed first"),
  Promise.resolve("Success")
]).catch(console.log);
Failed first

Promise.any()

✔ What it does

Returns the first fulfilled (successful) promise.

Ignores rejected ones.

✔ Example

const p1 = Promise.reject("Err 1");
const p2 = Promise.resolve("Data loaded!");
const p3 = Promise.resolve("Another success");

Promise.any([p1, p2, p3])
  .then(res => console.log(res))
  .catch(err => console.log(err));
Data loaded!

❗ If all fail

Promise.any([
  Promise.reject("A"),
  Promise.reject("B")
]).catch(err => console.log(err.errors));
["A", "B"]