Nico R.: Grundsätzliche Frage. Ist ein Callback hier der richtige Ansatz?

Beitrag lesen

Nabend allerseits,

ich möchte in JS, nachdem eine Funktion ajaxdaten() und alle darin befindlichen Unterfunktionen abgearbeitet sind, eine Funktion button_einblenden() aufrufen. Sagen wir mal, die Funktion sieht vom Aufbau in etwa so aus. Der Code ist syntaktisch vereinfacht, es geht nur um den Ablauf:

function ajaxdaten() {
  function ajax1(sleep.php) {
    ...
    // sleep.php sendet nach 5 Sekunden einen Rückgabewert
    xhttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
        button_einblenden();
        // Rufe ich die Funktion hier auf, wird der Button wie gewünscht nach 5s eingeblendet
      }
    });
  }
  button_einblenden();
  // Rufe ich die Funktion hier auf, wird der Button sofort eingeblendet, die sleep.php läuft noch im Hintergrund
} 

Gibt es eine Möglichkeit, button_einblenden() erst dann aufzurufen, wenn alle Funktionen innerhalb von ajax_daten() abgearbeitet sind oder muss ich immer direkt an onreadystatechange() "horchen"? Ist ein callback das, was mich hier weiter bringen würde?

Jetzt, wo ichs schreibe, ahne ich, dass das vielleicht nicht geht, weil der AJAX-Aufruf ja asynchron abläuft (und auch soll)...

Nun hab ichs fertig getippt. Vielleicht kommt ja etwas dabei rum ;-)

Schöne Grüße Nico