theory.js

Asynchronous JavaScript

Callbacks & Callback Hell

Callbacks are functions passed as arguments to other functions and executed later. Too many nested callbacks can lead to callback hell.

  • Callbacks allow async operations but can lead to deeply nested, hard-to-read code.
  • Callback hell occurs when multiple callbacks are nested, making the code difficult to maintain.
function fetchData(callback) {
  setTimeout(() => {
    callback("Data received");
  }, 1000);
}

fetchData((response) => {
  console.log(response); // "Data received"
});

// Callback hell example
function step1(next) {
  setTimeout(() => {
    console.log("Step 1");
    next();
  }, 1000);
}

function step2(next) {
  setTimeout(() => {
    console.log("Step 2");
    next();
  }, 1000);
}

// Nested callbacks (callback hell)
step1(() => {
  step2(() => {
    console.log("All steps completed");
  });
});