Описание тега callback

Обратный вызов - это фрагмент кода (то есть адрес или ссылка на функцию или метод или лямбда-выражение), который передается в качестве аргумента другому коду, который, как ожидается, вызовет (выполнит) аргумент в удобное время. Этот тег следует использовать с вопросами об API, который использует обратные вызовы для уведомления вызывающего абонента о завершении действия. Используйте тег обработки событий для вопросов, связанных с подпиской на события, например, в среде графического интерфейса пользователя.

В компьютерном программировании обратный вызов - это фрагмент исполняемого кода, который передается в качестве аргумента другому коду, который, как ожидается, вызовет (выполнит) аргумент в удобное время. Вызов может быть немедленным, как в синхронном обратном вызове, или может произойти позже, как в асинхронном обратном вызове.

Статья Википедии: http://en.wikipedia.org/wiki/Callback_(computer_programming)


Пример обратного вызова процесса синхронизации в javascript:

function outer(argumentOne, fn){
    console.log("what was argumentOne? ", argumentOne);
    return fn();
}

function someCallback() {
    console.log("callback triggered!");
}

outer("brown", someCallback);

Пример обратного вызова асинхронного процесса в javascript:

function mySandwich(param1, param2, callback) {
        console.log('Started eating my sandwich.\n\n It has: ' + param1 + ', ' + param2);
    setTimeout(function(){
        callback(null,param1*param2);},2000);
    }

    mySandwich(1, 2, function(err,result) {
        console.log('Finished eating my sandwich.' + result);
    });

Выход:

Started eating my sandwich.

It has: 1, 2
Finished eating my sandwich.2