Verwendung der JavaScript-Sleep-Funktion

Verwendung der JavaScript-Sleep-Funktion

1. Schlaffunktion

JavaScript wird in einem einzigen Thread ausgeführt und verfügt nicht über eine integrierte Sleep-Funktion. Nun simulieren wir den Effekt einer Verzögerung der Ausführung durch Verwendung von Sleep.

Verwenden Sie die Schlaffunktion, um den Ampelcode umzusetzen: rotes Licht für 2 Sekunden, gelbes Licht für 1 Sekunde, grünes Licht für 3 Sekunden und Farbwechsel in einem Zyklus.

2. setTimeout

Die Methode, bei der „setTimeout“ direkt zur Implementierung von sleep() verwendet wird, weist die beste Kompatibilität auf, die Implementierungsmethode mit Rückruffunktionen macht den Code jedoch weniger lesbar und wartbar.

// Zeitlimit festlegen
let fun = () => console.log('Zeitüberschreitung');
lass schlafen = Funktion(Spaß,Zeit){
  setzeTimeout(()=>{
    Spaß();
  },Zeit);
}

Schlaf (Spaß, 2000);

setTimeout
setTimeout ist die einfachste Implementierungsmethode. Der Code sieht wie folgt aus und verwendet Rekursion, um einen zyklischen Farbwechsel zu implementieren:
Funktion changeColor(Farbe) {
 console.log('Ampel ', Farbe);
}
Funktion main() {
 Farbe ändern('rot');
 setzeTimeout(()=>{
  Farbe ändern('gelb');
  setzeTimeout(() => {
   Farbe ändern('grün');
   setTimeout(main, 2000);
  }, 1000);
 }, 2000);
}
hauptsächlich();

3. Versprechen

In der ES6-Syntax ist Promise eine Möglichkeit, die Sleep-Methode asynchron zu implementieren. Mithilfe der Promise-Methode kann die Sleep-Implementierungsmethode elegant erstellt werden, ohne dass Funktionsrückrufe verwendet werden müssen.

// versprechen
let fun = () => console.log('Zeitüberschreitung');
let sleep2 = (Zeit) => neues Promise((Auflösung) => {
  setTimeout(Auflösung, Zeit)
})
sleep2(2000).dann(Spaß);

Versprechen

Verwenden Sie Promise, um die nächste Farbänderung hineinzuschreiben, und verwenden Sie abschließend Rekursion, um die Schleife abzuschließen.

Verwenden Sie Promise anstelle von setTimeout und verwenden Sie Kettenaufrufe, um die Light-Konvertierung zu realisieren. Geben Sie dann ein Promise-Objekt zurück. Wenn sich dieses Objekt im aufgelösten Zustand befindet, kann es kontinuierlich aufgerufen werden.

const Ampel=(Farbe,Dauer)=>{
  returniere neues Promise((lösen,ablehnen)=>{
    console.log('Ampel ', Farbe);
    setzeTimeout(()=>{
        lösen()
    },Dauer)
  })
}
const main=()=>{
    Versprechen.lösen()
    .dann(()=>{
        returniere Ampel('rot',3000)
    })
    .dann(()=>{
        returniere Ampel('gelb',1000)
    })
    .dann(()=>{
        returniere Ampel('grün',2000)
    })
    .dann(()=>{
        hauptsächlich();
    })
}
hauptsächlich()

4. asynchrones Warten

Async await ist eigentlich die syntaktische Vereinfachung von Generator und Promise. Es bietet eine synchrone Programmiermethode zur Implementierung asynchroner Aufrufe und unterstützt gleichzeitig die Semantik der Sleep-Funktion. Es ist auch eine häufig verwendete Methode zur Implementierung von Sleep.

// asynchron warten
asynchrone Funktion warte(Zeit){
  warte auf sleep2(Zeit);
  Spaß();
}

warte(3000);

asynchrone Verwendung von „Await“

Durch die Verwendung von async await können Sie die .then.then.then-Reihe von Promise vermeiden, und es besteht keine Notwendigkeit für Rekursion. Sie können while(true) verwenden, um die Schleife zu implementieren.

Funktion sleep(Dauer) {
  gib ein neues Versprechen zurück (Auflösen => {
      setTimeout(Auflösung, Dauer);
  })
}
asynchrone Funktion changeColor(Farbe, Dauer) {
 console.log('Ampel ', Farbe);
 warte auf Schlaf (Dauer);
}
asynchrone Funktion main() {
 während (wahr) {
  warte auf Farbänderung('rot', 2000);
  warte auf Farbänderung('gelb', 1000);
  warte auf Farbänderung('grün', 3000);
 }
}
hauptsächlich();

5. Ausgabe 1 nach 1 s, Ausgabe 2 nach 2 s, Ausgabe 3 nach 3 s

const log = konsole.log;
const sleep = (Zeitüberschreitung) => {
  returniere neues Promise((resolve)=>{
    setzeTimeout(()=>{
      lösen();
    }, Zeitüberschreitung)
  })
}

const main = async()=>{
  warte auf Schlaf (1000);
  Protokoll(1);
  warte auf Schlaf (2000);
  Protokoll(2);
  warte auf Schlaf (3000);
  Protokoll(3);
}

Referenzartikel:

Ampel Ampel

Dies ist das Ende dieses Artikels über die Verwendung der JavaScript-Schlaffunktion. Weitere relevante Inhalte zur JavaScript-Schlaffunktion finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Grundlagen der funktionalen Programmierung in JavaScript
  • Ein Artikel bringt Ihnen die Vererbung von JS-Funktionen bei
  • JavaScript-Grundlagenreihe: Funktionen und Methoden
  • JS-Funktionsaufruf, Anwenden und Binden einer superdetaillierten Methode
  • Fallstudie zu JavaScript-Funktionsaufrufen, Apply- und Bind-Methoden
  • Detaillierte Erklärung des Unterschieds zwischen Pfeilfunktionen und normalen Funktionen in JavaScript
  • JavaScript-Wissen: Konstruktoren sind auch Funktionen
  • Detaillierte Beispiele für Variablen- und Funktionspromotion in JavaScript
  • Zusammenfassung von über 50 Hilfsfunktionen in JavaScript
  • 15 JavaScript-Funktionen, die es wert sind, gesammelt zu werden

<<:  Wie MLSQL Stack das Stream-Debugging vereinfacht

>>:  So berechnen Sie mit Linux den von zeitgesteuerten Dateien belegten Speicherplatz

Artikel empfehlen

Beispiel zum Erstellen und Ausführen mehrerer MySQL-Container in Docker

1. Verwenden Sie das Image mysql/mysql-server:lat...

Vue verwendet Echarts, um ein dreidimensionales Balkendiagramm zu implementieren

In diesem Artikel wird der spezifische Code von V...

Erfahren Sie mehr über das V-Modell und seine Modifikatoren in einem Artikel

Inhaltsverzeichnis Vorwort Modifikatoren des V-Mo...

So verwenden Sie CSS, um mehrere Bilder horizontal in der Mitte anzuzeigen

Lassen Sie mich zunächst über die Implementierung...

Der URL-Wert des SRC- oder CSS-Hintergrundbildes ist der Base64-codierte Code

Möglicherweise ist Ihnen aufgefallen, dass auf die...

Mysql-Sortierung und Paginierung (Order by & Limit) und vorhandene Fallstricke

Sortierabfrage (Sortieren nach) Im E-Commerce: Wi...

jQuery implementiert Formularvalidierungsfunktion

Beispiel für die Validierung eines jQuery-Formula...

So verwenden Sie JS WebSocket zur Implementierung eines einfachen Chats

Inhaltsverzeichnis Kurze Umfrage Langfristige Abf...

Vue implementiert das Hoch- und Herunterladen von Dateien

In diesem Artikelbeispiel wird der spezifische Co...

So ändern Sie den MySQL-Zeichensatz

1. Überprüfen Sie den Zeichensatz von MySQL Varia...

Einige kleine Methoden, die häufig in HTML-Seiten verwendet werden

Fügen Sie das Tag <Head> hinzu <meta http...

Erfahren Sie, wie nginx hohe Leistung und Skalierbarkeit erreicht.

Die Gesamtarchitektur von NGINX ist durch eine Re...

So löschen Sie eine Eigenschaft eines Objekts in JavaScript

1. löschen delete ist die einzige wirkliche Mögli...

So erstellen, starten und stoppen Sie einen Docker-Container

1. Ein Container ist eine unabhängig laufende Anw...