


Lassen Sie uns darüber sprechen, welche „chemischen Reaktionen' ablaufen, wenn „await' in JS-Schleifen verwendet wird
Dieser Artikel vermittelt Ihnen relevantes Wissen über JavaScript-Schleifen. Er befasst sich hauptsächlich mit der Verwendung von „await“ in js-Schleifen und der Ergebnisanalyse. Ich hoffe, dass er für alle hilfreich ist.
Vorwort
Wie ist diese Frage entstanden? Als ich eines Tages etwas über asynchrones Wissen lernte, stieß ich auf eine Frage wie diese: Verwenden Sie Promise, um jede Sekunde einen Wert in einem Array auszugeben Ich habe gedacht, dass es auch gelöst werden kann, wenn ich nach der Ausgabe des Werts in einer Schleife eine Sekunde lang anhalte, also habe ich den folgenden Code:
const arr = [1, 2, 3] arr.reduce((pre, cur) => { return pre.then(() => { return new Promise((resolve, reject) => { setTimeout(() => { resolve(console.log(cur)) }, 1000); }) }) }, Promise.resolve())
Das Druckergebnis entspricht auch den Erwartungen. Hier habe ich die erste Frage generiert: Nicht Muss es nicht mit Async verwendet werden? Wie kann es hier alleine verwendet werden? (Wenn Sie mir nicht glauben, versuchen Sie, den Code in die Browserkonsole einzufügen.)
Dann habe ich for in forEach geändert und festgestellt, dass der Effekt überhaupt nicht erzielt wurde. Die zweite Frage stellte sich: Warum ist das Warten in forEach fehlgeschlagen?
Promise.resolve().then(() => { return new Promise((resolve, reject) => { setTimeout(() => { resolve(console.log(1)) }, 1000); }) }).then(() => { return new Promise((resolve, reject) => { setTimeout(() => { resolve(console.log(2)) }, 1000); }) }).then(() => { return new Promise((resolve, reject) => { setTimeout(() => { resolve(console.log(3)) }, 1000); }) })
Mit diesen beiden Fragen beginnen Sie zu studieren und nach Antworten zu suchen.
await in der for-SchleifeIch erinnere mich, dass es beim Lernen von async/await ein Sprichwort gab, dass „await“ nur mit async verwendet werden kann. Tatsächlich ist dieser Satz nicht falsch. Warum kann ich dann direkt in die Browserkonsole schreiben? Wenn wir Code im Editor schreiben, müssen wir async verwenden. Das ist also ein Witz, haha, aber wenn ich auf etwas stoße Ich verstehe nicht, ich muss über eine andere Richtung nachdenken. Okay, wie oben erwähnt, spielt das Warten eine Rolle, indem es JS ermöglicht, zu warten, bis das Verarbeitungsergebnis per Versprechen zurückgegeben wird, und dann mit der Ausführung fortzufahren. Dann ist es auch möglich.
const arr = [1, 2, 3] const sleep = (ms) => { return new Promise((resolve, reject) => { setTimeout(() => { resolve() }, ms) }) } for (let i = 0; i < arr.length; i++) { console.log(arr[i]); await sleep(1000) }
arr.forEach(async item => { console.log(item); await sleep(1000) })
Die Ergebnisse sind auch möglich entsprechend den Erwartungen. Sie können „await“ in der Schleife verwenden und den Effekt erzielen
await in der forEach-SchleifeWie am Anfang wird der erwartete Effekt in „forEach“ nicht erreicht; forEach ist ungültig.
Dann sind die Erklärungen, die ich gesehen habe, wie folgt:
forEach in JavaScript unterstützt weder Promise Awareness noch Async und Wait, sodass Sie in forEach nicht verwenden können.
- map/forEach wird intern in Kombination mit einem Rückruf verwendet, um die Funktion auszuführen. Warten wartet nicht auf die Ausführung des Rückrufs.
- forEach unterstützt nur synchronen Code.
- Die zweite Möglichkeit, den Pseudocode in Zukunft zu vereinfachen lautet wie folgt:
<script> const arr = [1, 2, 3] const sleep = (ms) => { return new Promise((resolve, reject) => { setTimeout(() => { resolve() }, ms) }) } const logByOneSecond = async () => { for (let i = 0; i < arr.length; i++) { console.log(arr[i]); await sleep(1000) } } logByOneSecond() </script>
Nach dem Login kopierenmap/forEach ist eine einfache Ausführungsrückruffunktion und behandelt keine asynchronen Situationen. Das heißt: map/forEach erstellt mehrere Rückruffunktionen gleichzeitig und fügt mehrere Rückruffunktionen mit ihrer eigenen Asynchronität und Wartezeit hinzu, wie unten gezeigt.
Jede Funktion ist unabhängig, und die Rückrufe der anderen sind ebenfalls unabhängig von der Anforderung ist asynchron, sie stehen in keinem Zusammenhang und die Reihenfolge kann nicht garantiert werdenZusammenfassungconst logByForof = async () => { for (const item of arr) { console.log(item); await sleep(1000) } } logByForof()
Nach dem Login kopierenÜberprüfte die Verwendung von async/await in Schleifenanweisungen. Bei gewöhnlichen for-Schleifen sind alle Wartevorgänge serielle Aufrufe. Ja, das können Sie Verwenden Sie es mit Zuversicht, einschließlich while, for-in, for-of usw.; Array-Methoden mit Rückrufen wie forEach, Map, Filter, Reduce usw. haben jedoch viele Nebenwirkungen, daher ist es am besten, dies nicht zu tun Verwenden Sie „await“.
【Empfohlenes Lernen: Javascript-Tutorial für Fortgeschrittene】
Das obige ist der detaillierte Inhalt vonLassen Sie uns darüber sprechen, welche „chemischen Reaktionen' ablaufen, wenn „await' in JS-Schleifen verwendet wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



So implementieren Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem. Einführung: Mit der kontinuierlichen Weiterentwicklung der Technologie ist die Spracherkennungstechnologie zu einem wichtigen Bestandteil des Bereichs der künstlichen Intelligenz geworden. Das auf WebSocket und JavaScript basierende Online-Spracherkennungssystem zeichnet sich durch geringe Latenz, Echtzeit und plattformübergreifende Eigenschaften aus und hat sich zu einer weit verbreiteten Lösung entwickelt. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem implementieren.

WebSocket und JavaScript: Schlüsseltechnologien zur Realisierung von Echtzeit-Überwachungssystemen Einführung: Mit der rasanten Entwicklung der Internet-Technologie wurden Echtzeit-Überwachungssysteme in verschiedenen Bereichen weit verbreitet eingesetzt. Eine der Schlüsseltechnologien zur Erzielung einer Echtzeitüberwachung ist die Kombination von WebSocket und JavaScript. In diesem Artikel wird die Anwendung von WebSocket und JavaScript in Echtzeitüberwachungssystemen vorgestellt, Codebeispiele gegeben und deren Implementierungsprinzipien ausführlich erläutert. 1. WebSocket-Technologie

Einführung in die Verwendung von JavaScript und WebSocket zur Implementierung eines Online-Bestellsystems in Echtzeit: Mit der Popularität des Internets und dem Fortschritt der Technologie haben immer mehr Restaurants damit begonnen, Online-Bestelldienste anzubieten. Um ein Echtzeit-Online-Bestellsystem zu implementieren, können wir JavaScript und WebSocket-Technologie verwenden. WebSocket ist ein Vollduplex-Kommunikationsprotokoll, das auf dem TCP-Protokoll basiert und eine bidirektionale Kommunikation zwischen Client und Server in Echtzeit realisieren kann. Im Echtzeit-Online-Bestellsystem, wenn der Benutzer Gerichte auswählt und eine Bestellung aufgibt

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript. Im heutigen digitalen Zeitalter müssen immer mehr Unternehmen und Dienste Online-Reservierungsfunktionen bereitstellen. Es ist von entscheidender Bedeutung, ein effizientes Online-Reservierungssystem in Echtzeit zu implementieren. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Reservierungssystem implementieren, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist WebSocket? WebSocket ist eine Vollduplex-Methode für eine einzelne TCP-Verbindung.

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Einführung: Heutzutage ist die Genauigkeit von Wettervorhersagen für das tägliche Leben und die Entscheidungsfindung von großer Bedeutung. Mit der Weiterentwicklung der Technologie können wir genauere und zuverlässigere Wettervorhersagen liefern, indem wir Wetterdaten in Echtzeit erhalten. In diesem Artikel erfahren Sie, wie Sie mit JavaScript und WebSocket-Technologie ein effizientes Echtzeit-Wettervorhersagesystem aufbauen. In diesem Artikel wird der Implementierungsprozess anhand spezifischer Codebeispiele demonstriert. Wir

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

Verwendung: In JavaScript wird die Methode insertBefore() verwendet, um einen neuen Knoten in den DOM-Baum einzufügen. Diese Methode erfordert zwei Parameter: den neuen Knoten, der eingefügt werden soll, und den Referenzknoten (d. h. den Knoten, an dem der neue Knoten eingefügt wird).

Einführung in die Methode zum Abrufen des HTTP-Statuscodes in JavaScript: Bei der Front-End-Entwicklung müssen wir uns häufig mit der Interaktion mit der Back-End-Schnittstelle befassen, und der HTTP-Statuscode ist ein sehr wichtiger Teil davon. Das Verstehen und Abrufen von HTTP-Statuscodes hilft uns, die von der Schnittstelle zurückgegebenen Daten besser zu verarbeiten. In diesem Artikel wird erläutert, wie Sie mithilfe von JavaScript HTTP-Statuscodes erhalten, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist ein HTTP-Statuscode? HTTP-Statuscode bedeutet, dass der Dienst den Dienst anfordert, wenn er eine Anfrage an den Server initiiert
