🔗

How to Use Promises in JavaScript

JavaScriptIntermediate

Handle asynchronous operations with Promises.

Code Example

JavaScript
// Creating a Promise
const promise = new Promise((resolve, reject) => {
  setTimeout(() => {
    const success = true;
    if (success) {
      resolve("Data loaded!");
    } else {
      reject("Error occurred");
    }
  }, 1000);
});

// Using .then() and .catch()
promise
  .then(data => console.log(data))
  .catch(error => console.error(error));

// Chaining promises
function fetchData() {
  return new Promise(resolve => {
    setTimeout(() => resolve("Step 1"), 500);
  });
}

function processData(data) {
  return new Promise(resolve => {
    setTimeout(() => resolve(data + " -> Step 2"), 500);
  });
}

fetchData()
  .then(processData)
  .then(result => console.log(result));

// Promise.all
const p1 = Promise.resolve(1);
const p2 = Promise.resolve(2);
const p3 = Promise.resolve(3);

Promise.all([p1, p2, p3])
  .then(values => console.log(values));

// Promise.race
const fast = new Promise(resolve => 
  setTimeout(() => resolve("Fast"), 100)
);
const slow = new Promise(resolve => 
  setTimeout(() => resolve("Slow"), 500)
);

Promise.race([fast, slow])
  .then(winner => console.log(winner));

// Promise.allSettled
Promise.allSettled([
  Promise.resolve("Success"),
  Promise.reject("Error"),
  Promise.resolve("Another success")
]).then(results => console.log(results));

Explanation

Promises handle async operations. Use .then() for success, .catch() for errors. Promise.all() waits for all, Promise.race() returns first.

Related Tutorials