Callback функции в JavaScript

Callback-функции в JavaScript — это функции, которые передаются в качестве аргументов другим функциям и выполняются после завершения определенной операции или события. Они широко используются в асинхронном программировании, обработке событий и функциональном программировании.

Пример передачи callback-функции в другую функцию как аргумента и вызов внутри нее

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

function processUserInput(callback) {
    const name = prompt("Please enter your name.");
    callback(name);
}

processUserInput(greeting); // greeting — это callback-функция

Callback-функции часто используются для обработки асинхронных операций, таких как запросы к серверу, чтение файлов или таймеры

setTimeout(function() {
    console.log("Это сообщение отобразится после 2 секунд");
}, 2000);

Callback-функции используются для обработки событий, таких как клики мыши, нажатия клавиш и т.д.

document.querySelector("button").addEventListener("click", function() {
    console.log("Button clicked!");
});

Но тема про обработчиков событий будет пройдена позже и разобрана более детально.

К недостаткам callback-функций можно отнести так называемый Callback Hell (Ад обратных вызовов)

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

Пример “Callback Hell”:

getData(function(a) {
    getMoreData(a, function(b) {
        getEvenMoreData(b, function(c) {
            console.log("Final result:", c);
        });
    });
});

Callback-функции остаются важной частью JavaScript, но в современных приложениях их часто заменяют промисами и async/await для улучшения читаемости и поддержки кода.