Heim >Web-Frontend >js-Tutorial >JS-Timer und asynchrone Single-Thread-Funktionen
In diesem Artikel werden hauptsächlich die JS-Timer- und Single-Thread-Asynchronfunktionen vorgestellt. Jetzt kann ich ihn mit Ihnen teilen.
Das erste, was ich sagen muss. Timing Die mit dem Timer verbundenen Methoden sind alle BOM-Methoden, und der Timer wird verwendet, um einen Codeabschnitt innerhalb einer festgelegten Zeit
auszuführen oder den Code innerhalb eines bestimmten Zeitintervalls zu wiederholen. Spezifische Funktion:
setTimeout(callback, delay);//delay一定的时间后,执行回调函数只执行一次 setInterval(callback, delay);//每隔一段时间执行一次callback,反复执行 clearInterval(timer);//清除定时
Der Timer ist zwar sehr nützlich, aber nicht einfach zu bedienen. Warum sagen Sie das?
Wir wissen, dass JS Single-Threaded ist, sodass der Thread leicht blockiert werden kann
? --asynchron!
Natürlich ist JS Single-Threaded und kann nicht asynchron sein, aber die Host-Umgebung von JS (z. B. Browser, Knoten) ist Multi-Threaded
und die Host-Umgebung wird auf irgendeine Weise gesteuert (zum Beispiel: (Knoten ereignisgesteuert) Dadurch verfügt JS über asynchrone Eigenschaften.
Warum reden Sie plötzlich von asynchronem Single-Threaded JS? Was bedeutet es, weil das Timer-Ereignis von JS asynchron verarbeitet wird?
Im Code:
var num = 1; setTimeout(function() { num++; console.log(num); }, 1000); console.log(num); //结果并是不(2,1)而是(1,2)
Warum ist das so? Wie bereits erwähnt, verarbeitet JS das Timer-Ereignis asynchron, was bedeutet, dass es nicht auf die Verarbeitung des Timer-Ereignisses
wartet, bevor es den folgenden Code ausführt, sondern das Timer-Ereignis nach der Eingabe direkt in das Ereignis einfügt Führen Sie in der Warteschlange den folgenden Code direkt aus
Wenn das Timer-Ereignis abgeschlossen ist, führt JS den Rückrufteil des Timer-Ereigniscodes aus.
Asynchron kann effektiv verhindern, dass der JS-Thread blockiert wird, und es ist sehr effizient, sodass JS mehr Dinge
mit begrenzten Ressourcen tun kann, was erstaunlich ist. (Wir werden im Knoten vielen asynchronen Problemen ausgesetzt sein)
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Lernen aller hilfreich ist PHP chinesische Website!
Verwandte Empfehlungen:
JS-asynchrone Programmierung – Promise, Generator, async/await
Einführung in die JS-asynchrone Programmierung
Das obige ist der detaillierte Inhalt vonJS-Timer und asynchrone Single-Thread-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!