JavaScript Promise API

JavaScript Promise API

JavaScript Promise API

The Promise API provides powerful methods to work with multiple promises efficiently.

🔹 1. Promise.all() – Wait for All Promises

Resolves when all promises succeed
Rejects if any fail

let p1 = Promise.resolve(10); let p2 = new Promise((resolve) => setTimeout(() => resolve(20), 2000)); let p3 = Promise.reject("Error occurred!"); Promise.all([p1, p2, p3]) .then((results) => console.log("✅ Success:", results)) .catch((error) => console.log("❌ Error:", error));

Output:

Error: Error occurred!

If one fails, everything fails!

🔹 2. Promise.allSettled() – Handle All Outcomes

Waits for all promises
Returns both resolved & rejected results

let p1 = Promise.resolve(10); let p2 = new Promise((resolve) => setTimeout(() => resolve(20), 2000)); let p3 = Promise.reject("Error occurred!"); Promise.allSettled([p1, p2, p3]).then((results) => console.log(results));

Output:

[ { "status": "fulfilled", "value": 10 }, { "status": "fulfilled", "value": 20 }, { "status": "rejected", "reason": "Error occurred!" } ]

Handles errors gracefully!

🔹 3. Promise.race() – First One Wins

Resolves/rejects as soon as the first promise settles

let fast = new Promise((resolve) => setTimeout(() => resolve("🏎 Fast!"), 500)); let slow = new Promise((resolve) => setTimeout(() => resolve("🐌 Slow!"), 2000)); let error = new Promise((_, reject) => setTimeout(() => reject("❌ Failed!"), 1000)); Promise.race([fast, slow, error]) .then((result) => console.log("✅ Winner:", result)) .catch((error) => console.log("❌ Error:", error));

Output (after 500ms):

Winner: 🏎 Fast!

First resolved/rejected promise decides the result.

🔹 4. Promise.any() – First Success Wins

Resolves when any promise resolves
Fails only if all fail

let fail1 = new Promise((_, reject) => setTimeout(() => reject("❌ Error 1"), 500)); let success = new Promise((resolve) => setTimeout(() => resolve("🎉 Success!"), 1000)); let fail2 = new Promise((_, reject) => setTimeout(() => reject("❌ Error 2"), 1500)); Promise.any([fail1, success, fail2]) .then((result) => console.log("✅ First success:", result)) .catch((error) => console.log("❌ All failed:", error.errors));

Output (after 1 sec):

First success: 🎉 Success!

Only rejects if all fail!

🔹 5. Promise.resolve() & Promise.reject()

Promise.resolve(value)

Returns a promise that resolves instantly.

Promise.resolve(42).then(console.log); // ✅ 42

Promise.reject(error)

Returns a promise that rejects instantly.

Promise.reject("Something went wrong!").catch(console.log); // ❌ Something went wrong!

🔹 Summary

MethodResolves whenRejects whenUse case
Promise.all()All promises resolveAny promise rejectsRun multiple promises and fail fast
Promise.allSettled()All promises settleNever rejectsGet both success & failure results
Promise.race()First promise resolves/rejectsFirst promise rejectsGet first completed result
Promise.any()First promise resolvesOnly if all rejectGet first success & ignore failures
Promise.resolve(value)Instantly resolvesNeverCreate resolved promise
Promise.reject(error)NeverInstantly rejectsCreate rejected promise

🚀 Need examples? Just ask! 😊

Soeng Souy

Soeng Souy

Website that learns and reads, PHP, Framework Laravel, How to and download Admin template sample source code free.

Post a Comment

CAN FEEDBACK
close