JavaScript Me Callbacks & Asynchronous Programming Kya Hoti Hai – JavaScript Callbacks & Asynchronous Programming

JavaScript Callbacks & Asynchronous Programming

JavaScript ek asynchronous language hai, jo aapko multiple tasks ko ek saath efficiently execute karne ki ability deti hai. Iska matlab hai ki aap ek task ko execute karte hue doosra task bhi chala sakte ho bina kisi block ke. Yeh kaise hota hai, yeh samajhne ke liye hume callbacks aur asynchronous programming ko samajhna padega.

1. JavaScript Callback

JavaScript callback ek function hota hai jo dusre function ko argument ke roop mein pass kiya jata hai aur jab wo dusra function apna kaam complete kar leta hai, tab callback function execute hota hai. Iska use asynchronous programming mein hota hai, jaise ke APIs ya events ko handle karna. Callback function ko hum success ya failure ke response mein execute karte hain, jisse code ka flow control ho sakta hai. Yaani, pehle kaam pura ho, phir callback execute ho.

yeh ek function hai jo doosre function ke andar pass hota hai aur wo doosra function jab apna kaam complete karta hai, tab yeh callback function execute hota hai.

Example:

function greet(name) {
  console.log("Hello " + name);
}

function processUserInput(callback) {
  var name = "Sandeep";
  callback(name);
}

processUserInput(greet); // greet function will be called as a callback

Explanation:

  • greet ek function hai jo name ko print karta hai.
  • processUserInput ek function hai jo callback ko argument ke roop mein accept karta hai. Is case mein greet function ko pass kiya gaya hai.
  • Jab processUserInput call hota hai, woh greet ko call karta hai, aur output hota hai “Hello Sandeep”.

2. Asynchronous Programming in JavaScript

Asynchronous programming ka matlab hai ki code ko ek sequence mein execute na kar ke, independently tasks ko execute kiya jata hai. Yeh tab useful hota hai jab hum kisi time-consuming process ko handle karte hain jaise ki network requests, file reading, etc.

Definition: Asynchronous programming mein hum aise tasks ko initiate karte hain jo bina code ko block kiye background mein execute hote hain.

Synchronous vs Asynchronous:

  • Synchronous Programming: Jab hum ek function ko call karte hain, toh program usko complete hone tak wait karta hai. Jaise ki ek function ke baad dusra function execute hota hai.
  • Asynchronous Programming: Function call ke baad program wait nahi karta, balki uska execution continue ho jata hai aur jab task complete hota hai tab callback function execute hota hai.

3. Callback with Asynchronous Tasks

JavaScript mein callback ek function hota hai jo kisi doosre function ko argument ke roop mein diya jata hai aur woh tab execute hota hai jab ek specific task complete ho jata hai. Jab hum asynchronous tasks jaise ki API call, file read, ya setTimeout use karte hain, to unmein time lagta hai. JavaScript synchronous nature ke bawajood, asynchronous tasks ko efficiently handle karne ke liye callbacks ka use karti hai. Jaise hi task complete hota hai, callback function automatically call ho jata hai, bina poori script ko roke. Isse non-blocking behavior maintain rehta hai aur performance better hoti hai. Callback asynchronous code ko manage karne ka ek traditional aur basic tareeka hai JavaScript mein.

Example:

function fetchData(callback) {
  setTimeout(function() {
    console.log("Data fetched successfully");
    callback();
  }, 2000); // Simulates a 2 second delay
}

function displayData() {
  console.log("Displaying data now.");
}

fetchData(displayData); // Asynchronous callback

Explanation:

  • fetchData ek asynchronous function hai jo data fetch karne ka kaam karta hai (yahan pe setTimeout ka use kiya gaya hai to simulate a delay).
  • Jab data fetch ho jata hai, displayData ko callback ke roop mein call kiya jata hai.
  • Yeh displayData function 2 second ke baad execute hota hai, isliye code non-blocking hai.

4. Callback Hell (Pyramid of Doom)

Callback Hell yaani “Pyramid of Doom” ek aisi situation hoti hai JavaScript me jab multiple nested callbacks ka use hota hai, especially asynchronous operations ke liye. Jab ek callback ke andar doosra callback hota hai, aur fir uske andar teesra, toh code ka structure ek pyramid jaisa dikhta hai — isliye isse Pyramid of Doom bhi kaha jata hai. Is tarah ka deeply nested code samajhne aur maintain karne me mushkil hota hai. Yeh readability aur debugging dono ko hard bana deta hai. Callback Hell ka solution Promises aur async/await ke through milta hai, jo asynchronous code ko zyada clean aur manageable banate hain. Yeh modern JavaScript ka important concept hai for better coding practices.

Example:

doTask1(function(result1) {
  doTask2(result1, function(result2) {
    doTask3(result2, function(result3) {
      doTask4(result3, function(result4) {
        console.log("Final Result: " + result4);
      });
    });
  });
});

Yeh bahut messy aur hard to maintain ho jata hai. Is problem ko solve karne ke liye, JavaScript mein Promises aur Async/Await ka concept diya gaya hai.

5. Promises: Callback ka Alternative

Promises JavaScript mein ek modern technique hai jo asynchronous operations ko handle karne ke liye use hoti hai. Ye callback ka alternative hai, jisse “callback hell” se bachne mein madad milti hai. Promise ek object hota hai jo future mein kisi value ke complete hone (resolve) ya fail hone (reject) ko represent karta hai. Isme .then() aur .catch() methods ka use karke hum success ya error ko easily handle kar sakte hain. Promises se code readable aur maintainable banta hai, kyunki ye chaining allow karta hai, jisse multiple asynchronous tasks ko orderly execute kiya ja sakta hai.

let fetchData = new Promise(function(resolve, reject) {
  let success = true;
  if (success) {
    resolve("Data fetched successfully!");
  } else {
    reject("Data fetch failed.");
  }
});

fetchData
  .then(function(data) {
    console.log(data); // Success
  })
  .catch(function(error) {
    console.log(error); // Error
  });

Explanation:

  • Promise ek object return karta hai jo success ya failure ka result deta hai.
  • .then() method use hota hai jab promise successfully complete hota hai.
  • .catch() method use hota hai jab promise fail hota hai.

6. Async/Await: Simplifying Asynchronous Code

Async/Await JavaScript ka ek modern feature hai jo asynchronous code ko likhne aur samajhne ko simple banata hai. “async” keyword kisi function ke aage use hota hai jisse wo function hamesha ek Promise return karta hai. “await” keyword kisi asynchronous operation ke samne use kiya jata hai jisse JavaScript us Promise ke resolve hone ka wait karti hai bina pura program roke. Isse nested callbacks ya .then() chains ki complexity door hoti hai. Async/Await ka use code ko synchronous jaise flow mein likhne deta hai, jisse readability aur maintainability dono improve hoti hai.

async function fetchData() {
  let result = await getData();
  console.log(result);
}

function getData() {
  return new Promise((resolve) => {
    setTimeout(() => resolve("Data fetched successfully!"), 2000);
  });
}

fetchData();

Explanation:

  • async keyword function ke aage lagta hai, jo function ko asynchronous bana deta hai.
  • await ka use kisi promise ko wait karne ke liye kiya jata hai.

JavaScript mein callbacks aur asynchronous programming essential concepts hain jo humare code ko efficient banate hain, especially jab hum time-consuming tasks handle karte hain. Callbacks, Promises, aur Async/Await ke through hum apne code ko clean aur easy-to-manage bana sakte hain.

Quiz: Test Your Knowledge on JavaScript Callbacks & Asynchronous Programming

Bonus: Practical Application!

Aaj hi JavaScript mein Callbacks aur Asynchronous Programming ka istemal karke dekhein!

JavaScript ke asynchronous behavior ko sahi tareeke se samajhne ke liye callbacks, setTimeout, setInterval, promises, aur async/await jaise concepts ka upayog karein, aur apne web applications ko banayein aur bhi responsive aur user-friendly!

Leave a Reply