AnyCompiler

Promises aur Async/Await

Kuch operations — server se data fetch karna, file parhna, timer ka wait karna — foran khatam nahi hote. JavaScript ise Promise se sambhalta hai: ek value jo represent karti hai ke kuch baad mein poora hoga, ya to kamiyabi se ya error ke sath.

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) foran ek Promise wapas karta hai, bina kuch bhi block kiye — "Starting..." foran 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 rokta hai jab tak promise resolve nahi hota, bina program ke baaqi hisse ko block kiye — yeh bas asynchronous code ko upar se neeche parhne laayak 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 aksar zyada parhne mein aasan mana jaata hai jab ek se zyada asynchronous step lagatar ho. async mark kiya gaya function hamesha ek Promise wapas karta hai, aur await sirf uske andar hi istemal 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 wapas kare, phir ise doosre async function ke andar await karo aur result print karo.