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