Asynchrone JavaScript
- Vorherige Seite JS-Callback
- Nächste Seite JS-Promises
"Ich werde später fertig sein!"
Funktionen, die parallel zu anderen Funktionen ausgeführt werden, werden als asynchron (asynchronous) bezeichnet
Ein gutes Beispiel ist JavaScript setTimeout()
Asynchrone JavaScript
Die im vorherigen Kapitel verwendeten Beispiele wurden erheblich vereinfacht.
Ziel ist es, die Syntax der Callback-Funktion zu demonstrieren:
können Sie die Callback-Funktion für jedes Intervall angeben:
function myDisplayer(some) { document.getElementById("demo").innerHTML = some; } function myCalculator(num1, num2, myCallback) { let sum = num1 + num2; myCallback(sum); } myCalculator(5, 5, myDisplayer);
d.getSeconds();myDisplayer
ist der Name der Funktion.
wird als Parameter an myCalculator();
。
In der realen Welt werden Callbacks am häufigsten mit asynchronen Funktionen verwendet.
Ein typisches Beispiel ist JavaScript setTimeout();
。
Warten auf Timeout
Wartezeit setTimeout();
können Sie den Callback-Funktion angeben, die bei Ablauf der Verzögerung ausgeführt wird:
können Sie die Callback-Funktion für jedes Intervall angeben:
setTimeout(myFunction, 3000); setInterval(myFunction, 1000); document.getElementById("demo").innerHTML = "Ich liebe dich !!"; }
Im obigen Beispiel wirdIn dem obigen Beispiel wird,
wird als Callback verwendet.
Funktion (Funktionsname) wird als Parameter an setTimeout();
。
wird als Callback verwendet. Es ist eine vollständige Funktion. Eine vollständige Funktion wird als Parameter an setTimeout() übergeben. 1000 sind die Millisekunden zwischen den Intervallen, daher
。
Wenn Sie eine Funktion als Parameter übergeben, vergessen Sie nicht, die Klammern wegzulassen.
Korrekt: setTimeout(myFunction, 3000);
Fehler: setTimeout(myFunction(), 3000);
Wenn Sie den Namen der Funktion nicht als Parameter an eine andere Funktion übergeben, können Sie immer die gesamte Funktion übergeben:
können Sie die Callback-Funktion für jedes Intervall angeben:
setTimeout(function() { myFunction("Ich liebe dich !!!"); }, 3000); function myFunction(value) { function myFunction(value) {}} }
d.getSeconds();document.getElementById("demo").innerHTML = value;
function(){ myFunction("Ich liebe dich !!!"); }
wird als Callback verwendet. Es ist eine vollständige Funktion. Eine vollständige Funktion wird als Parameter an setTimeout() übergeben. 1000 sind die Millisekunden zwischen den Intervallen, daher
。
3000 sind die Millisekunden vor dem Timeout, daher wird nach 3 Sekunden aufgerufen
Wartezeit myFunction
Beim Verwenden von JavaScript-Funktionen
können Sie die Callback-Funktion für jedes Intervall angeben:
Beispiel setInterval(myFunction, 1000); function myFunction() { let d = new Date(); document.getElementById("demo").innerHTML= d.getHours() + ":" + d.getMinutes() + ":" + }
d.getSeconds();In dem obigen Beispiel wird,
als Callback verwendet.
Funktion (Funktionsname) wird als Parameter an myFunction
。
setInterval() 1000 sind die Millisekunden zwischen den Intervallen, daher
myFunction()
jedes Sekunde aufgerufen.
Datei abwarten
Das ist der beste Zeitpunkt für Callbacks. Wenn Sie Funktionen erstellen, um externe Ressourcen (wie Skripte oder Dateien) zu laden, können Sie diese Inhalte vor dem vollständigen Laden nicht verwenden.
In diesem Beispiel wird eine HTML-Datei geladen (mycar.html
) und zeigt die HTML-Datei im Browser an, wenn diese vollständig geladen wurde:
Datei abwarten:
function myDisplayer(some) { document.getElementById("demo").innerHTML = some; } function getFile(myCallback) { let req = new XMLHttpRequest(); req.open('GET', "mycar.html"); req.onload = function() { if (req.status == 200) { myCallback(this.responseText); } else { myCallback("Fehler: " + req.status); } } req.send(); } getFile(myDisplayer);
Im obigen Beispiel wirdmyDisplayer
als Callback verwendet.
Funktion (Funktionsname) wird als Parameter an getFile()
。
Hier ist mycar.html
Kopie:
mycar.html
<img src="img_car.jpg" alt="Schönes Auto" style="width:100%"> <p>Ein Auto ist ein rado-fahrendes, selbstangetriebenes Kraftfahrzeug, das zum Transport verwendet wird.</p> <p>Die meisten Definitionen des Begriffs spezifizieren, dass Autos hauptsächlich auf Straßen fahren sollen, mit Sitzplätzen für eine bis acht Personen und typischerweise mit vier Rädern.</p> <p>(Wikipedia)</p>
- Vorherige Seite JS-Callback
- Nächste Seite JS-Promises