Day 16 Promises
JavaScript single-threaded hai — ek kaam ek waqt. Async operations (API calls, file read) ke liye Promises use karte hain taake baaki code ruka na rahe.
Promise kya hai?
Promise ek future value ka promise hai — ya fulfill hogi ya reject.
// Promise banao
let myPromise = new Promise((resolve, reject) => {
let success = true;
if (success) {
resolve("Data load ho gaya!");
} else {
reject("Kuch ghalat ho gaya!");
}
});
// Promise use karo
myPromise
.then(result => console.log("Success:", result))
.catch(error => console.log("Error:", error))
.finally(() => console.log("Always runs!"));
Promise Chaining
Multiple async operations sequence mein chalao.
function fetchUser(id) {
return new Promise(resolve => {
setTimeout(() => resolve({ id, name: "Zohaib" }), 1000);
});
}
function fetchPosts(userId) {
return new Promise(resolve => {
setTimeout(() => resolve(["Post 1", "Post 2"]), 500);
});
}
// Chain
fetchUser(1)
.then(user => {
console.log("User:", user.name);
return fetchPosts(user.id);
})
.then(posts => {
console.log("Posts:", posts);
})
.catch(err => console.log("Error:", err));
Promise.all — Parallel Run
Multiple promises ek saath chalao.
let p1 = fetch("https://api.example.com/users");
let p2 = fetch("https://api.example.com/posts");
let p3 = fetch("https://api.example.com/comments");
// Sab ek saath chalao
Promise.all([p1, p2, p3])
.then(([users, posts, comments]) => {
console.log("All loaded!");
})
.catch(err => console.log("One failed:", err));
🎯 Practice Challenge
2 second delay ke baad random number return karne wala Promise banao. .then() mein check karo ke even hai ya odd.