Javascript callback functions and recursion example

javascript

Callback functions are often used in JavaScript for asynchronous programming or when we want to pass functions as arguments to other functions. Here’s an example of using a callback function and recursion together in JavaScript:

function countDown(fromNumber, callback) {
  console.log(fromNumber);
  if (fromNumber > 0) {
    // Decrement the number and call countDown again recursively
    setTimeout(function() {
      countDown(fromNumber - 1, callback);
    }, 1000);
  } else {
    // Call the callback function when the countdown is complete
    callback();
  }
}

function done() {
  console.log('Countdown complete!');
}

countDown(5, done);

In this example, we define a countDown function that takes two arguments: the starting number for the countdown and a callback function to be called when the countdown is complete. The countDown function logs the current number to the console, decrements the number, and then calls itself again recursively using setTimeout to delay each iteration by one second.

When the countdown reaches 0, the countDown function calls the callback function that was passed in as an argument.

We also define a done function that simply logs a message to the console to indicate that the countdown is complete. Finally, we call countDown with a starting number of 5 and the done function as the callback.

This example demonstrates how recursion and callback functions can be used together in JavaScript to implement asynchronous functionality such as a countdown timer.