JavaScript Promises
Real life se relate kar ke seekhte hain!

Introduction
JavaScript mein agar kabhi setTimeout lagaaya, API call maara, ya database se data maanga hai… toh tum asynchronous JS jungle ke safari pe nikal chuke ho. 🌴🐒
Aur iss jungle ka ultimate raja — Promise. Aaj hum isko full desi college romance wale andaaz mein samjhenge. Proposal se shuru, lovey-dovey phase, aur akhir mein wo iconic breakup drama. ❤️→💔
Maza bhi aayega, concept bhi crystal clear hoga, aur thoda sa college nostalgia ka overdose bhi milega. 🥲
Technically 100% correct. Emotionally? 1000% relatable, bhai!
Promise hota kya hai?
Simple language mein:
Promise = Ek aisa commitment jo future mein ya toh fulfill hoga ya reject.
Ek future ka "pakka wala vaada" jo ya toh poora hoga (resolve), ya toh dhokha dega (reject).
Picture this:
College ka 2nd year mein padhte huye tum, freshers' party pe usko dekha. Tumhari aankhein aur dil dono uski smile ne chura le gaya. Dil se dil tak current chala gaya. Semester exams khatam hue, tumne himmat juta ke propose kar diye (roof-top pe, rain background mandatory).
Ab uska reply? Pending… pending… pending…
Exactly jaise JS ka Promise!
const pyaarKaPromise = new Promise((resolve, reject) => {
const mutualVibes = Math.random() > 0.4; // reality check 😏
if (mutualVibes) {
resolve("YES bol diya! 💍✨");
} else {
reject("Bhai… sirf dost theek hai 🙂↔️");
}
});
3 States of Pyaar (aka Promise States)
Chetan Bhagat ke 2 States padhe the? Forget that. Real college love mein sirf 3 states hote hain:
| Love Ka Scene | Promise State | Feeling Level |
|---|---|---|
| Reply ka intezaar (seen zone) | Pending | Anxiety 100 😨 |
| YES bol diya! | Fulfilled | Butterflies 🦋 |
| Friendzone / block / ghost | Rejected | Sad violin bgm 🎻🥲 |
1. .then() – “Haan bol diya, ab shuru honeymoon phase”
Kyu ke Promise ek asynchronous activity hain, tumhara tension khatam hone mein kuch time to lagega bhai! Sirf success pe .then chalta hai. Jaise tumhari proposal accept hone ke baad wali story.
pyaarKaPromise
.then((msg) => {
console.log(msg); // "YES bol diya! 💍✨"
// ab CCD date plan karo
})
.catch((err) => {
console.log(err); // "Bhai… sirf dost theek hai"
// sad playlist on repeat
});
2. Promise Chaining – Full college love arc
Ek, do event pe nahi rukta na pyaar? Propose → first date → Insta official → late-night calls → trips → ghar waalon ko manana → shaadi dreams…
Same vibes chaining mein bhi:
Promise.resolve("Proposal accepted 💖")
.then((msg) => {
console.log(msg);
return "First maggi date in canteen 🍜";
})
.then((date) => {
console.log(date);
return "Insta story daal di – #CoupleGoals 📸";
})
.then((status) => {
console.log(status);
return "Ghar waalon ko convince kar liya? Maybe… 😅";
})
.catch((error) => {
console.log("Breakup loading…:", error);
});
Har .then() ek naya Promise return karta hai aur har .then() previous step pe depend karta hai. Ek bhi fail → chain crash!
3. .catch() – The ultimate breakup catcher
Beech mein ex wapas aa gaya, trust issues, ya "long distance nahi chalega"… wajah kuch bhi ho, aap ko .catch() samhalta hain.
Promise.resolve("Honeymoon phase on 🔥")
.then(() => {
throw new Error("Ex ne story pe like kar diya 😵");
})
.then(() => console.log("Ye nahi hoga"))
.catch((drama) => {
console.log("Relationship terminated:", drama);
});
.catch() poori chain ke errors ko pakad leta hai. Jaise ek bhi red flag dikha → pura pyaar red zone mein!
4. .finally() – “Pyaar gaya toh gaya, placement toh lagana hai”
Chahe resolve ho ya reject, ye hamesha chalega.
Promise.reject("Seen-zoned forever 🥲")
.catch((err) => console.log(err))
.finally(() => {
// Pyaar mile na mile, placement milna chahiye..
//Ya to Uski choice ko duniya ke nazro mein prove karne ke liye 😎,
//Nehi to uske decision ke against self-worth prove karne ke liye... 😭
console.log(" ChaiCode webdev cohort enroll karte hain");
console.log(" 😎 placement loading...");
});
Promise Static Methods – Multiverse of College Crushes
Promise.all() – “Ladka Approval Committee”
"Sabki approval chahiye"
Bestie, uski bestie, mummy-papa… sab yes → green signal. Ek bhi no → poora reject!
const bestFriendApproval = Promise.resolve("Best friend happy");
const herBestieApproval = Promise.resolve("Her bestie approved");
const momApproval = Promise.resolve("Mummy ko bhi pasand");
Promise.all([
bestFriendApproval,
herBestieApproval,
momApproval
])
.then((results) => {
console.log("Sab khush:", results);
})
.catch((error) => {
console.log("Kisi ko problem hai:", error);
});
Promise.allSettled() – “Sab apna apna opinion batao”
Chahe koi support kare, koi hate kare, sabka status milega. Real gossip group energy.
const friend1 = Promise.resolve("Supportive");
const friend2 = Promise.reject("Toxic banda hai");
const friend3 = Promise.resolve("Neutral");
Promise.allSettled([friend1, friend2, friend3])
.then((results) => {
console.log(results);
});
Output Structure:
[
{ status: 'fulfilled', value: 'Supportive' },
{ status: 'rejected', reason: 'Toxic banda hai' },
{ status: 'fulfilled', value: 'Neutral' }
]
Promise.any() – "Bas ek haan chahiye yaar"
Thoda controversial 😜 hain but tum concept samjho..bhawnao pe mat jao..😉. Multiple crushes mein se pehla yes → jeet gaye! Sab reject → total heartbreak (AggregateError).
Rule:
Pehla resolve → success
Sab reject → AggregateError
const crush1 = Promise.reject("Already committed");
const crush2 = Promise.resolve("Interested 👀");
const crush3 = Promise.reject("Friendzone");
Promise.any([crush1, crush2, crush3])
.then(console.log)
.catch(console.log);
Promise.race() – "Kaun pehle reply karega?"
Jo sabse jaldi message karega, wahi jeetega. DM race intensifies! 🏃♂️💨
const instaReply = new Promise((resolve) => {
setTimeout(() => resolve("Insta pe reply 💬"), 1000);
});
const whatsappReply = new Promise((resolve) => {
setTimeout(() => resolve("WhatsApp pe reply 📱"), 2000);
});
Promise.race([instaReply, whatsappReply])
.then(console.log);
Deep Concept: Error Propagation
Error kahin bhi aaya, neeche .catch() tak pahunch jaata hai. Jaise "trust issues" ka chhota sa seed → pura relationship ko barbaad karta hain.
Agar chain mein kahin bhi error aaya, woh neeche ke .catch() tak travel karega.
Promise.resolve("Start relationship")
.then(() => {
return Promise.reject("Trust issues 😬");
})
.then(() => {
console.log("Ye kabhi nahi chalega");
})
.catch((err) => {
console.log("Handled:", err);
})
Output:
Handled: Trust issues 😬
Bonus: async/await – Mature, thoda calm wala version
Sabar ka fal, meetha hota hain! Ab yeh dekho promises ke liye wait karne ka mature tareeka.
async function collegeLoveStory() {
try {
const proposal = await Promise.resolve("YES! 💖");
console.log(proposal);
const firstKiss = await Promise.resolve("Movie theatre mein popcorn share 🍿");
console.log(firstKiss);
const future = await Promise.resolve("Couple DP forever ✨");
console.log(future);
} catch (heartbreak) {
console.log("Breakup scene:", heartbreak);
} finally {
console.log("Life goes on… next sem ke notes bhi padhna padenge 🌈");
}
}
collegeLoveStory();
Final Gyaan (Technical + Dil se)
Promise = future ka dabba (value ya error)
.then() = happy ending chain
.catch() = breakup damage control
.finally() = placement grind never stops
all / race / any / allSettled = alag-alag desi love scenarios
Aage se jab koi bole “Baby, I promise…”
Tu seedha bol dena:
“Return type bata?
Resolve ya reject?
Aur .catch() hai kya? 😏🔥”
Ab jaao, promises samajh ke code likho… aur thoda sa college wala pyaar yaad karke smile kar lo. ❤️🩹😂
Jai Hind!
Abhirup



