Promises

Handle asynchronous operations with Promises

#promises #async #then #catch

Promises

Promises represent future values and handle asynchronous operations.

Creating Promises

// Basic promise
const promise = new Promise((resolve, reject) => {
  setTimeout(() => {
    const success = true;
    if (success) {
      resolve('Operation successful!');
    } else {
      reject('Operation failed!');
    }
  }, 1000);
});

// Using the promise
promise
  .then(result => console.log(result))
  .catch(error => console.error(error))
  .finally(() => console.log('Done'));

Chaining Promises

fetch('/api/user/1')
  .then(response => response.json())
  .then(user => {
    console.log('User:', user);
    return fetch(`/api/posts?userId=${user.id}`);
  })
  .then(response => response.json())
  .then(posts => console.log('Posts:', posts))
  .catch(error => console.error('Error:', error));

Promise Utilities

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

// All - wait for all promises
Promise.all([p1, p2, p3])
  .then(values => console.log(values));  // [1, 2, 3]

// Race - first to complete
Promise.race([p1, p2, p3])
  .then(value => console.log(value));  // 1

// AllSettled - all results regardless of success/failure
Promise.allSettled([p1, p2, Promise.reject('error')])
  .then(results => console.log(results));

Discover another handy tool from EditPDF.pro