CallBack-Funktion

Eine CallBack-Function ermöglicht das zeitlich koordinierte Ablaufen zweier Funktionen, die nicht unbedingt voneinander abhängig sind.

Wenn man beispielsweise eine Funktion zum Anlegen von Benutzern hat und eine zum Auflisten der Benutzer.
Beide Funktionen machen unabhängig voneinander Sinn und können individuell aufgerufen werden.

Doch möchte man nun gezielt erst einen Benutzer anlegen und anschließend alle Benutzer auflisten lassen, und so beide Funktionen nacheinander aufrufen, würde es aufgrund der synchronen Verarbeitung des Scriptes gegebenenfalls zu Problemen führen. Weil, die Routine getUser könnte schneller ablaufen, als die addUser, so dass man erst eine Liste aller Benutzer bekommt und dann der neue Benutzer angelegt wird.
Man sieht den neuen Benutzer dann nicht in der Auflistung und weiß nicht, ob es geklappt hat.

Also fügt man in diesem Szenario der addUser-Funktion einen Parameter hinzu, welche Funktion nach dem Anlegen des Benutzers aufgerufen werden soll und so ruft die addUser selbst die getUser auf um sicherzustellen, dass die Funktion getUser definitiv erst nach dem anlegen des Users durch die addUser aufgerufen wird.
code
var users = ['Lisa','Anna','Werner'];
function addUser(name, callback){
  setTimeout(function) {
    users.push(name);
    callback();
  },200); // Verzögerung 200ms
}

function getUsers() {
    setTimeout(function(){
      console.log(users);}
    },100); // Verzögerung 100ms
  }
}
addUser('Marie',getUsers);