AnyCompiler

Promises aur Async/Await

Kuch operations — server se data fetch karna, file padhna, timer ka wait karna — turant khatam nahi hote. JavaScript ise Promise se handle karta hai: ek value jo represent karti hai ki kuch baad mein complete hoga, ya to successfully ya error ke saath.

function delay(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

console.log("Starting...");
delay(100).then(() => {
  console.log("100ms have passed");
});
Output
Starting...
100ms have passed

delay(100) turant ek Promise return karta hai, bina kuch bhi block kiye — "Starting..." turant print ho jaata hai. .then() ek function register karta hai jo promise resolve hone par chalega, jo 100ms baad hota hai jab timer khatam hota hai.

async/await — async code ko synchronous jaisa likhna

await ek function ko us line par tab tak pause karta hai jab tak promise resolve nahi hota, bina program ke baaki hisse ko block kiye — yeh bas asynchronous code ko upar se neeche padhne layak banata hai, .then() ke andar callbacks nest karne ke bajaye.

function delay(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

async function main() {
  console.log("Starting...");
  await delay(100);
  console.log("100ms have passed");
}

main();
Output
Starting...
100ms have passed

Upar wale .then() version jaisa hi result, lekin async/await ko generally zyada padhne mein aasan mana jaata hai jab ek se zyada asynchronous step lagatar ho. async mark kiya gaya function hamesha ek Promise return karta hai, aur await sirf uske andar hi use ho sakta hai.

Aage: modules aur standard library — files ke across code organize karna, aur kya built-in hai.

Practice Exercise

Ek async function getValue() likho jo 42 return kare, phir ise doosre async function ke andar await karo aur result print karo.