Callback функция

Что такое сallback функция и как она работает

Callback функция – это функция которая передается в другую функцию в качестве аргумента и вызывается внутри переданной функции. Это позволяет выполнять определенные действия после завершения основной функции.

Например, если у вас есть функция, которая занимает много времени для выполнения, вы можете передать в нее callback функцию, чтобы выполнить действие после завершения основной функции.

function slowFunction(callback) {
  setTimeout(function() {
    console.log('Slow function finished');
    callback();
  }, 5000);
}

function afterSlowFunction() {
  console.log('Callback function finished');
}

slowFunction(afterSlowFunction);

Давайте рассмотрим следующий пример:

function greeting(name, callback) {
  console.log(`Hello, ${name}`);
  callback(name);
}

function processGreeting(name) {
  console.log(`${name} has been processed`);
}

greeting('John', processGreeting);

В этом примере функция greeting принимает два аргумента: name и callback. Она выводит приветствие и вызывает callback функцию с аргументом name. Функция processGreeting принимает имя и выводит сообщение о том, что имя было обработано.

В результате, вызов функции greeting приведет к выводу приветствия и сообщения об обработанном имени.

Также допустим, мы хотим получить массив чисел и выполнить определенную операцию с каждым элементом. Мы можем использовать функцию forEach, которая принимает массив и callback функцию:

const numbers = [1, 2, 3, 4, 5];

numbers.forEach(function(number, index) {
  console.log(`${index + 1}: ${number}`);
});

В этом примере, метод forEach принимает callback функцию, которая выполняется для каждого элемента массива numbers. Два аргумента передаются в функцию: текущий элемент и его индекс. В данном случае, мы выводим в консоль индекс и значение текущего элемента.

По итогу использование callback функций позволяет улучшить производительность и сделать код более читаемым. Они также являются основным инструментом для реализации асинхронного программирования в JavaScript.