Callback

Callback

É uma função passada a outra função como argumento, que é então invocado dentro da função externa para completar algum tipo de rotina ou ação. São funções que são passadas como parâmetros na chamada de outra função que vai executar código por trás do panos.
Quando esse código por trás dos panos terminar de ser executado, a função callback será chamada para te informar que a tarefa foi finalizada ou que algo do seu interesse aconteceu.

OBS: O uso das callbacks é um pouco antiquado agora, mas você ainda pode vê-las em um número de APIs comumente usadas.

Callbacks são versáteis — elas não apenas lhe permitem controlar a ordem em que as funções são executadas e quais dados são passados entre elas, elas também podem passar dados para diferentes funçoes dependendo das circunstâncias.

Callbacks podem ser síncronas ou assíncronas.

                            // Funções de Callback
                            function doSomething(callback) {
                                setTimeout(function() {
                                    callback('Executou! First data');
                                }, 1000);
                            }
                            function doOtherThing(callback) {
                                setTimeout(function() {
                                    callback('Executou! Second data');
                                }, 1000);
                            }

                            // Função Chamadora
                            function doAll(){
                                try{
                                    doSomething(function(data) {
                                        var processedData = 'Processed data: ' + data; 
                                        try{
                                            doOtherThing(function(data2) {
                                                var processedData2 = 'Processed data2: ' + data2;
                                                try{
                                                    setTimeout(function() {
                                                        console.log(processedData, processedData2)
                                                    }, 1000);
                                                }catch(e){
                                                    console.log(e);
                                                }
                                            });
                                        }catch(e){
                                            console.log(e);
                                        }
                                    });
                                }catch(e){
                                    console.log(e);
                                }
                            }

                            // Execução
                            doAll();
                        

References

Callback function