Promises in JavaScript are a powerful way to handle asynchronous operations. A promise represents a value that may be available now, or in the future, or never.
Promise Methods with Examples
1. Promise.resolve(value)
Creates a promise that resolves with the given value.
const promise = Promise.resolve("Hello, World!");
promise.then((value) => console.log(value)); // Output: Hello, World!
2. Promise.reject(reason)
Creates a promise that rejects with the given reason.
const promise = Promise.reject("Something went wrong!");
promise.catch((error) => console.error(error)); // Output: Something went wrong!
3. Promise.all(iterable)
Resolves when all promises in the iterable resolve or rejects if any promise rejects.
const promises = [Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)];
Promise.all(promises).then((values) => console.log(values)); // Output: [1, 2, 3]
4. Promise.allSettled(iterable)
Waits for all promises to settle (resolve or reject) and returns their results.
const promises = [
Promise.resolve(1),
Promise.reject("Error"),
Promise.resolve(3),
];
Promise.allSettled(promises).then((results) => console.log(results));
// Output: [
// { status: 'fulfilled', value: 1 },
// { status: 'rejected', reason: 'Error' },
// { status: 'fulfilled', value: 3 }
// ]
5. Promise.race(iterable)
Resolves or rejects as soon as one of the promises resolves or rejects.
const promises = [
new Promise((resolve) => setTimeout(() => resolve("First"), 500)),
new Promise((resolve) => setTimeout(() => resolve("Second"), 1000)),
];
Promise.race(promises).then((value) => console.log(value)); // Output: First
6. Promise.any(iterable)
Resolves as soon as one of the promises resolves or rejects if all promises reject.
const promises = [
Promise.reject("Error 1"),
Promise.reject("Error 2"),
Promise.resolve("Success!"),
];
Promise.any(promises).then((value) => console.log(value)); // Output: Success!
7. Promise.prototype.then(onFulfilled, onRejected)
Defines what to do when the promise is resolved or rejected.
const promise = Promise.resolve("Done");
promise.then((value) => console.log(value)); // Output: Done
8. Promise.prototype.catch(onRejected)
Handles errors or rejections in a promise chain.
const promise = Promise.reject("Oops!");
promise.catch((error) => console.error(error)); // Output: Oops!
9. Promise.prototype.finally(onFinally)
Executes a callback after the promise is settled (resolved or rejected).
const promise = Promise.resolve("Complete");
promise
.finally(() => console.log("Cleanup"))
.then((value) => console.log(value));
// Output: Cleanup
// Output: Complete
Conclusion
Promises make asynchronous programming cleaner and more manageable. By leveraging these methods, you can handle a wide variety of scenarios in your JavaScript applications.