Heim  >  Artikel  >  Web-Frontend  >  Einführung in den Unterschied zwischen Generatorfunktion und asynchroner Funktion

Einführung in den Unterschied zwischen Generatorfunktion und asynchroner Funktion

不言
不言nach vorne
2019-04-04 11:28:152313Durchsuche

Dieser Artikel bietet Ihnen eine Einführung in den Unterschied zwischen Generatorfunktion und asynchroner Funktion. Ich hoffe, dass er für Sie hilfreich ist.

Generatorfunktion:

Generatorfunktion ist eine von ES2015 bereitgestellte asynchrone Lösung, die sich stark von gewöhnlichen Funktionen unterscheidet;

Funktionen:

1. Fügen Sie dem Funktionsschlüsselwort ein (*)-Zeichen hinzu.

2. Verwenden Sie den Yield-Ausdruck als Zustand innerhalb des Funktionskörpers Der Zustand kann über die for...of-Methode durchlaufen werden;

Verwendung:

führt den Generator aus und führt ihn nicht sofort aus und gibt einen Traverser zurück, der next() und throw( ) Oder return() führt den nächsten Status aus, erfasst Fehler oder beendet den Traverser;

asynchrone Funktion:

asynchrone Funktion ist die von ES2017 bereitgestellte asynchrone Funktionssyntax ist der syntaktische Zucker des Generators, aber seine Verwendung unterscheidet sich immer noch stark von der Generator-Funktion:

1. Folgen Sie dem Schlüsselwort async vor dem Funktionsschlüsselwort >2. Verwenden Sie den Warteausdruck im Funktionskörper.

Die asynchrone Funktion gibt ein Versprechensobjekt zurück.

Die Ausführung der asynchronen Funktion erfolgt sofort Funktion, gibt aber ein Versprechensobjekt zurück;

Vergleich zwischen den beiden:

1. Generator erscheint in ES2015, async erscheint in ES2017, async ist der syntaktische Zucker von Generator ;

2. Die Ausführung des Generators erfordert die Verwendung eines Executors (next() und andere Methoden). ;

3. Die Syntax und Semantik von Async ist eindeutig asynchron, die Semantik des (*)-Zeichens und der Ausbeute in der Generatorfunktion ist nicht so direkt 🎜>4. Auf „Yield“ im Generator kann nur eine Thunk-Funktion oder ein Promise-Objekt folgen und auf „Await“ in der asynchronen Funktion kann ein Promise-Objekt oder ein primitiver Typwert folgen (der automatisch in ein Promise-Objekt konvertiert wird). wird sofort aufgelöst); 5. Der Rückgabewert ist anders als bei Async, der ein Promise-Objekt zurückgibt.

【Verwandte Empfehlungen:

JavaScript-Video-Tutorial

Das obige ist der detaillierte Inhalt vonEinführung in den Unterschied zwischen Generatorfunktion und asynchroner Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen