26. What is a JavaScript Promise and how does it work?

What is a JavaScript Promise and How Does it Work?

A JavaScript Promise is an object representing the eventual completion or failure of an asynchronous operation. It allows you to attach callbacks for handling the result or error of an asynchronous task, making it easier to manage code execution flow.

How Promises Work

A Promise can be in one of three states:

  1. Pending: Initial state, neither fulfilled nor rejected.
  2. Fulfilled: The operation completed successfully.
  3. Rejected: The operation failed.

When a Promise is created, it is in the pending state. It can transition to the fulfilled state by calling the resolve function, or to the rejected state by calling the reject function. Once a Promise is settled (fulfilled or rejected), it cannot change state again.

Creating a Promise

Here's a simple example of creating a Promise:

const myPromise = new Promise((resolve, reject) => { const success = true; // Simulating success scenario if (success) { resolve('Operation successful!'); } else { reject('Operation failed.'); } });

Handling a Promise

You handle a Promise's result using .then() for fulfillment and .catch() for rejection:

myPromise .then((message) => { console.log('Success:', message); }) .catch((error) => { console.error('Error:', error); });

In the example above, if resolve is called, the then block executes, printing "Success: Operation successful!". If reject is called, the catch block executes, printing "Error: Operation failed.".

Promise Chaining

Promises can be chained to sequence multiple asynchronous operations. Each .then() returns a new Promise, allowing further chaining:

myPromise .then((message) => { console.log('First:', message); return 'Next operation'; }) .then((nextMessage) => { console.log('Second:', nextMessage); }) .catch((error) => { console.error('Error:', error); });

In this chain, the result of one then is passed to the next, allowing for sequential processing of asynchronous operations.

Conclusion

JavaScript Promises provide a powerful way to handle asynchronous operations, offering a cleaner and more manageable approach than traditional callback-based solutions.

Struggling to find common date to meet with your friends? Try our new tool commondate.xyz
devFlipCards 2025

Do you accept cookies?

Cookies are small amounts of data saved locally on you device, which helps our website - it saves your settings like theme or language. It helps in adjusting ads and in traffic analysis. By using this site, you consent cookies usage.

Struggling to find common date to meet with your friends? Try our new tool
commondate.xyz