Details zu Makrotasks und Mikrotasks in JavaScript

Details zu Makrotasks und Mikrotasks in JavaScript

1. Was sind Mikroaufgaben?

Promise

await und async

2. Was sind Makroaufgaben?

setTimeout

setInterval

  • DOM -Ereignisse
  • AJAX -Anfragen

3. Fall

<Skript>

console.log(1)

setzeTimeout(()=>{

    konsole.log("2")

},0)

Versprechen.lösen().dann(()=>{

    konsole.log('3')

})

console.log(4)

</Skript>

Wir haben festgestellt, dass die Druckreihenfolge 1-4-3-2 ist

Warum ist es in dieser Reihenfolge?

Drucken Sie zuerst 1-4. Es gibt definitiv kein Problem.

Warum wird zuerst 3 und dann 2 gedruckt?

Weil 3 Promise ist Promise eine Mikroaufgabe ist.

2 ist setTimeout , eine Makroaufgabe

Mikrotasks werden früher ausgeführt als Makrotasks.

Also wird zuerst 3 ausgeführt und dann 2

3.1 Fazit

  • Erst synchron, dann asynchron; erst Mikro, dann Makro
  • Mikrotasks werden früher ausgeführt als Makrotasks.

4. Codebeispiele

<Text>

    <div id="app"></div>

<Skript>

// Dieser Abschnitt ist DOM-Rendering let app=document.getElementById("app")

let cont='<p>Ich bin ein p-Tag</p>'

app.anhängen(Forts.)

// DOM-Rendering wird beendet console.log(1)

setzeTimeout(()=>{

    konsole.log("2")

    Alarm('setTimeout2')

},0)

Versprechen.lösen().dann(()=>{

    konsole.log('3')

    Alarm('3')

})

console.log(4)

</Skript>

</body>

4.1 Code-Analyse

Ausführungsanalyse des obigen Codes:

Sie müssen zuerst 1-4 ausführen.

Dann nach der Mikroaufgabe zuerst und dann der Makroaufgabe

Es gibt 3 aus und dann erscheint 3

Dann heißt es Ausgabe 2 und es erscheint setTimeout2 [falsch]

Weil es ein DOM -Rendering zwischen Mikrotasks und Makrotasks gibt

Dann kommt dom -Rendering und schließlich die Makroaufgabe

Nach der Ausgabe 1-4 wird DOM Rendering durchgeführt.

Dann wird output 2 und dann setTimeout2 angezeigt

4.2 Fazit und Anwendungsszenarien

Microtask>DOM-Rendering>Macrotask Siehe das folgende Beispiel

Anwendungsszenarien dieser Schlussfolgerung

Wir haben alle schon E-Charts erstellt. Wir wissen, wie man E-Charts rendert.

Der Knoten kann erst gerendert werden, nachdem das DOM der Seite gerendert wurde.

Daher platzieren einige Freunde den Anforderungszeitpunkt im überwachten ()-Lebenszyklus

Dadurch wird sichergestellt, dass die zurückgegebenen Daten normal auf der Seite wiedergegeben werden können.

Tatsächlich basierend auf der obigen Schlussfolgerung.

Sie können Daten im Erstellungsprozess anfordern. Als ich zurückkam.

Der DOM wird definitiv gerendert. Weil es sich bei der Anfrage um eine Makroaufgabe handelt.

Die Ausführungszeit der Makroaufgabe erfolgt nach dem DOM-Rendering.

Dies ist das Ende dieses Artikels über die Details von Makrotasks und Mikrotasks in JavaScript . Weitere relevante Inhalte zu Makrotasks und Mikrotasks in JavaScript finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Eine kurze Diskussion über Makrotasks und Mikrotasks in js
  • JavaScript-Makrotasks und Mikrotasks
  • Eine kurze Diskussion über die Ausführungsreihenfolge von JavaScript-Makrotasks und Mikrotasks
  • Eine kurze Diskussion über die Prinzipien von JavaScript-Ereignisschleifen-Mikrotasks und Makrotask-Warteschlangen
  • Analyse der JavaScript-Ereignisschleife sowie der Prinzipien von Makro- und Mikro-Tasks
  • JS-Ereignisschleifenmechanismus Ereignisschleifen-Makrotask-Mikrotask-Prinzipanalyse
  • Erläuterung von JavaScript-Mikrotasks und Makrotasks

<<:  Einige Front-End-Praxiszusammenfassungen der neuen Homepage von Alipay

>>:  Eine kleine Einführung in die Verwendung der Position in HTML

Artikel empfehlen

Tipps zum Erstellen von Web-Tabellenrahmen

<br />Tipps zum Erstellen von Web-Tabellenra...

Der gesamte Prozess der Optimierung des ersten Ladens einer Vue-Seite

Inhaltsverzeichnis Vorwort 1. Bildoptimierung 2. ...

Vue+js: Klicken Sie auf den Pfeil, um die Bilder zu wechseln

In diesem Artikelbeispiel wird der spezifische Co...

Tiefgreifendes Verständnis der Vue-cli4-Routing-Konfiguration

Inhaltsverzeichnis Vorwort - Vue Routing 1. Die g...

Lösen Sie das Problem des Syn Flooding in der MySQL-Datenbank

Der SYN-Angriff ist die häufigste und am leichtes...

JavaScript-Implementierung von Lupendetails

Inhaltsverzeichnis 1. Rendern 2. Umsetzungsprinzi...

So konfigurieren Sie eine VMware-Umgebung mit mehreren Knoten

Dieses Tutorial verwendet CentOS 7 64-Bit. Weisen...

So zählen Sie das Datum mit Bash herunter

Sie möchten wissen, wie viele Tage es bis zu eine...

Erläuterung der Lösung zur mobilen H5-Bildgenerierung in JavaScript

Derzeit gibt es viele Betriebsaktivitäten für öff...

VM VirtualBox virtuelle Maschine mounten freigegebenen Ordner

Eine Umgebung Installieren Sie VMware Tools auf C...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.20 (Win10)

In diesem Artikel wird die Installations- und Kon...