Skip to main content

Command Palette

Search for a command to run...

JavaScript Promises

Published
•2 min read•View as Markdown
JavaScript Promises
G

Hey there! I'm Gazi Fayaz Wani, your go-to guru for all things JavaScript. With expertise in Node.js and a passion for crafting seamless user experiences, I thrive on challenges and love turning ideas into reality. Let's collaborate and create something extraordinary together!

The Promise object represents the eventual completion (or failure) of an asynchronous operation and its resulting value.

Promise States

  • Pending: Initial state of a promise, neither fulfilled nor rejected.

  • Fulfilled: The operation completed successfully.

  • Rejected: The operation failed.

Creating Promises

/* [Imp..] The new keyword is used to create a new instance of an 
object based on a constructor function */
const myPromise = new Promise((resolve, reject) => {
  // Asynchronous operation
  if (/* operation successful */) {
    resolve(result);
  } else {
    reject(error);
  }
});

Promise Methods:

1 . then(): Handles fulfillment of the promise.

myPromise.then(result => {
  // Handle fulfillment
})

2 . catch(): Handles promise rejection.

myPromise.catch(error => {
  // Handle rejection
});

3 . finally(): Executes after then() or catch(), regardless of the promise state.

myPromise.finally(() => {
  // Cleanup
});

3 . Promise.race(): Returns a promise that resolves or rejects as soon as one of the promises in the iterable resolves or rejects.

Promise.all([promise1, promise2, promise3])
  .then(results => {
    // All promises fulfilled
  }).catch(error => {
    // At least one promise rejected
  });

Chaining Promises

Promise chaining executes asynchronous operations sequentially with error handling.

promise1.then(result1 => {
  // Process result1
  return result2;
})
.catch(error => {
//Handle error for promise result 1 only
})
.then(result2 => {
  // Process result2
})
.catch(error => {
  // Handle any errors in the chain
});

Promises provide a powerful mechanism for handling asynchronous operations in JavaScript. Understanding these concepts will help you write cleaner and more efficient asynchronous code.