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!