Inhaltsverzeichnis
(3) Nach Abschluss des Versprechens wird auch der entsprechende Code ausgeführt. Wir können eine beliebige Anzahl von Funktionen registrieren, die bei Erfolg oder Misserfolg ausgeführt werden, und wir können jederzeit Ereignishandler registrieren.
Heim Web-Frontend Front-End-Fragen und Antworten Was sind die beiden asynchronen Verarbeitungsmethoden in JavaScript?

Was sind die beiden asynchronen Verarbeitungsmethoden in JavaScript?

Jan 27, 2022 pm 04:54 PM
javascript 异步处理

Zwei asynchrone Verarbeitungsmethoden in JavaScript: 1. Verwenden Sie „Promise“, um asynchrone Methoden zu verarbeiten. Dies kann bei der Verwaltung des von asynchronen Methoden zurückgegebenen Codes helfen. 2. Verwenden Sie „async/await“, um asynchrone Methoden zu verarbeiten, und Sie können die synchrone Syntax für asynchrone Methoden verwenden Ereignisse, die es zu bewältigen gilt.

Was sind die beiden asynchronen Verarbeitungsmethoden in JavaScript?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer. „Asynchrone Verarbeitungsmethode von JavaScript“ „Promise“

(2) Promise ist ein Muster, das dabei helfen kann, den zurückgegebenen Code asynchron zu verwalten. Er kapselt den Code und fügt eine Verwaltungsebene ähnlich der Ereignisbehandlung hinzu. Wir können Versprechen verwenden, um Code zu registrieren, der ausgeführt wird, nachdem das Versprechen erfolgreich ist oder fehlschlägt.

(3) Nach Abschluss des Versprechens wird auch der entsprechende Code ausgeführt. Wir können eine beliebige Anzahl von Funktionen registrieren, die bei Erfolg oder Misserfolg ausgeführt werden, und wir können jederzeit Ereignishandler registrieren.

(4) Promise hat zwei Zustände: 1. Warten (ausstehend); 2. Abgeschlossen (erledigt).

Promise bleibt in einem Wartezustand, bis der asynchrone Aufruf, den es umschließt, zurückkehrt/ein Zeitlimit überschreitet/beendet. (5) Zu diesem Zeitpunkt wird der Versprechensstatus abgeschlossen. Der Abschlussstatus ist in zwei Kategorien unterteilt: 1. Gelöst; 2. Abgelehnt.

(6) Versprechen gelöst (aufgelöst): bedeutet, dass es erfolgreich endet. Versprechen abgelehnt (abgelehnt) bedeutet, dass es nicht erfolgreich beendet wurde.

//promise
var p=new Promise(function(resolved))
//在这里进行处理。也许可以使用ajax
setTimeout(function(){
   var result=10*5;
   if(result===50){
      resolve(50);
   }else{
     reject(new Error('Bad Math'));
  }
},1000);
});
p.then(function(result){
    console.log('Resolve with a values of %d',result);
});
p.catch(function(){
   console.error('Something went wrong');
});
Nach dem Login kopieren

(1) Der Schlüssel zum Code liegt im Aufruf von setTimeout().

(2) Wichtig ist, dass er die Funktionen „resolve()“ und „reject()“ aufgerufen hat. Die Funktion „resolve()“ teilt dem Promise-Benutzer mit, dass das Promise aufgelöst wurde; die Funktion „reject()“ teilt dem Promise-Benutzer mit, dass das Promise nicht erfolgreich abgeschlossen werden konnte.

(3) Es gibt auch einige Codes, die Versprechen verwenden. Achten Sie auf die Verwendung von then und Catch. Sie können sie sich als Handler für onsucess- und onfailure-Ereignisse vorstellen.

(4) Das Schlaue daran ist, dass wir die Versprechensverarbeitung vom Status trennen. Mit anderen Worten: Wir können p.then (oder p.catch) so oft aufrufen, wie wir möchten, unabhängig vom Status des Versprechens.

(5) Promise ist die Standardmethode von ECMAscript 6 zur Verwaltung von asynchronem Code. JavaScript-Bibliotheken verwenden Versprechen, um Ajax, Animationen und andere typische asynchrone Interaktionen zu verwalten.

Einfach ausgedrückt besteht die Idee darin, dass jede asynchrone Aufgabe ein Promise-Objekt zurückgibt, das über eine then-Methode verfügt, mit der eine Callback-Funktion angegeben werden kann. Beispielsweise kann die Rückruffunktion f2 von f1 wie folgt geschrieben werden:

f1.then(f2);
Nach dem Login kopieren

f1 sollte wie folgt umgeschrieben werden (implementiert mit jquery):

function f1(){
   var dfd=$.deferred();
   settimeout(function(){
     //f1的任务代码
     dfd.resolve();
  },500);
  return dfd.promise;  
}
Nach dem Login kopieren

Die Vorteile des Schreibens wie folgt: Die Rückruffunktion ist im Kettenstil geschrieben und Der Programmablauf ist klar zu erkennen und es gibt einen vollständigen Satz unterstützender Methoden, mit denen viele leistungsstarke Funktionen erreicht werden können.

Geben Sie beispielsweise mehrere Rückruffunktionen an

f1().then(f2).then(f3);
Nach dem Login kopieren

Ein weiteres Beispiel: Geben Sie die Rückruffunktion an, wenn ein Fehler auftritt:

f1().then(f2).fail(f3);
Nach dem Login kopieren

Und es hat einen Vorteil, den die vorherigen drei Methoden nicht haben: Wenn eine Aufgabe abgeschlossen wurde, fügen Sie hinzu eine Rückruffunktion, die Rückruffunktion wird sofort ausgeführt.

Sie müssen sich also keine Sorgen machen, ein Ereignis oder Signal zu verpassen.

Nachteile dieser Methode: Sie ist relativ schwer zu schreiben und zu verstehen.

asynchrones Warten

Seit dem Aufkommen von ES6 Promise hat sich asynchroner Code allmählich von der Callback-Hölle zur eleganten funktionalen Pipeline-Verarbeitung gewandelt, aber für Entwickler, die damit nicht vertraut sind, ist es nur eine Abwechslung von der Callback-Hölle. Es ist einfach die Hölle.

Der neue async/await ist in ES8 standardisiert. Obwohl es sich nur um Syntaxzucker für die Kombination von Promise und Generator Function handelt, wird er über async</code weitergeleitet > /<code>await kann synchrone Syntax verwenden, um asynchrone Ereignisse zu verarbeiten, genau wie ein alter Baum, der neue Blumen blüht:

function wait(time, fn) {
  return new Promise(resolve => {
    setTimeout(() => {
      console.log(&#39;wait:&#39;, time)
      resolve(fn ? fn() : time)
    }, time)
  })
}
await wait(500, () => console.log(&#39;bar&#39;))
console.log(&#39;foo&#39;)
// wait: 500
// bar
// foo
Nach dem Login kopieren

Durch die Verwendung von setTimeout</ code> wird in ein Promise gepackt und dann mit dem Schlüsselwort <code>await aufgerufen. Sie können sehen, dass als Ergebnis zuerst bar und dann foo angezeigt wird wird angezeigt, d. h. das Schreiben asynchroner Ereignisse in die eingangs erwähnte synchrone Verarbeitung.

Schauen Sie sich ein weiteres Beispiel an:

async function withAsyncAwait() {
  for(let i = 0; i < 5; i++) {
    await wait(i*500, () => console.log(i))
  }
}await withAsyncAwait()
// wait: 0
// 0
// wait: 500
// 1
// wait: 1000
// 2
// wait: 1500
// 3
// wait: 2000
// 4
Nach dem Login kopieren
Die Funktion withAsyncAwait ist im Code implementiert und es werden die Schleife for und das Schlüsselwort await verwendet um die Funktion wait wiederholt auszuführen; wenn sie hier ausgeführt wird, wartet die Schleife nacheinander eine andere Anzahl von Sekunden, bevor sie die nächste Schleife ausführt. Wenn Sie async/await verwenden, denken Sie daran, es am besten zu verwenden, da das Schlüsselwort await nur in der asynchronen Funktion ausgeführt werden kann zur gleichen Zeit.

Außerdem müssen Sie bei der Verwendung von Schleifen zur Verarbeitung asynchroner Ereignisse beachten, dass viele nach ES6 bereitgestellte Array-Methoden die Syntax async/await nicht unterstützen forEach hier ersetzt for, das Ergebnis wird eine synchrone Ausführung und Zahlen werden alle 0,5 Sekunden ausgedruckt:

[Verwandte Empfehlungen:

Javascript-Lern-Tutorialasync/await,虽然只是 Promise 和 Generator Function组合在一起的语法糖,但通过 async/await 便可以将异步事件用同步语法来处理,就好像是老树开新花一样,写起来的风格与 Promise 完全不同:

rrreee

通过把 setTimeout 包装成 Promise,再用 await 关键字调用,可以看到结果会是同步执行的先出现 bar,再出现 foo,也就是开头提到的将异步事件写成同步处理。

再看一个例子:

rrreee

代码中实现了withAsyncAwait 函数,用 for 循环及 await 关键字反复执行 wait 函数;此处执行时,循环每次会按顺序等待不同的秒数再执行下一次循环。

在使用 async/await 时,由于 await 关键字只能在 async function 中执行,使用时务必要记得要同时使用。

另外在用循环处理异步事件时,需要注意在 ES6 之后提供的很多 Array 方法都不支持 async/await 语法,如果这里用 forEach 取代 for

]

Das obige ist der detaillierte Inhalt vonWas sind die beiden asynchronen Verarbeitungsmethoden in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript Dec 17, 2023 pm 02:54 PM

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 Implementierung von Echtzeitüberwachungssystemen WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen Dec 17, 2023 pm 05:30 PM

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

Verwendung von JavaScript und WebSocket zur Implementierung eines Echtzeit-Online-Bestellsystems Verwendung von JavaScript und WebSocket zur Implementierung eines Echtzeit-Online-Bestellsystems Dec 17, 2023 pm 12:09 PM

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 So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript Dec 17, 2023 am 09:39 AM

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.

Wie kann ich asynchrone Verarbeitungsprobleme in PHP-Funktionen debuggen? Wie kann ich asynchrone Verarbeitungsprobleme in PHP-Funktionen debuggen? Apr 17, 2024 pm 12:30 PM

Wie kann ich asynchrone Verarbeitungsprobleme in PHP-Funktionen debuggen? Verwenden Sie Xdebug, um Haltepunkte festzulegen und Stack-Traces zu überprüfen und nach Aufrufen zu suchen, die sich auf Coroutinen oder ReactPHP-Komponenten beziehen. Aktivieren Sie ReactPHP-Debugging-Informationen und zeigen Sie zusätzliche Protokollinformationen an, einschließlich Ausnahmen und Stack-Traces.

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Dec 17, 2023 pm 05:13 PM

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

Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Jan 05, 2024 pm 06:08 PM

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

So verwenden Sie insertBefore in Javascript So verwenden Sie insertBefore in Javascript Nov 24, 2023 am 11:56 AM

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).

See all articles