1. Symboldatentyp
Der Symboldatentyp wurde in ES6 neu hinzugefügt.
Native Datentypen mit dem Attribut [Symbol.iterator]: Array, Array-like, Map, Set,
hat[Symbol.iterator]
Attributobjekt kann direkt aufgerufen werden, um ein Iterator
Objekt
zu generieren 2. Iteratorobjekt: ist ein Zeigerobjekt, das Traverserobjekt
Methode: next(): Das zurückgegebene Format ist {value: ,done: }
Verwendung for..of to traverse: Bei jedem Durchlauf erhalten Sie den Wert.
3. Geneteror
function* G(){ yield 200; yield 300; return 400; } var g=G();
1. Beim Definieren von Generator verwenden Sie function* und yield . um Ergebnisse zurückzugeben.
2. Nach dem Aufruf von Generator wird der darin enthaltene Code nicht sofort ausgeführt, sondern befindet sich in einem angehaltenen Zustand. Und generieren Sie ein Generatorobjekt.
3. Wenn auf yield
trifft, wird der Ausdruck nach yeild
ausgeführt, der Wert nach der Ausführung zurückgegeben und dann wieder in den Pausenzustand versetzt , done: false
Der Generator gibt auch ein Iteratorobjekt zurück, sodass Sie die nächste Methode verwenden können, for..of
1. Bei Verwendung der nächsten Methode werden die Parameter in next auf den Wert vor der ausgeführten Ausbeute übergeben.
2.yield* kann in einem Generator auf einen anderen Generator verweisen.
4. Generator implementiert asynchronen Betrieb
1. Eine Thunk-Funktion ist erforderlich, mit nur einem Parameter, der Callback-Funktion
2. Die Co-Bibliothek wird normalerweise zum Packen asynchroner Vorgänge verwendet, was praktisch und prägnant ist.
3. Auf Yield muss eine Thunk-Funktion folgen.
4. Der Generator ist immer noch auf Rückruf angewiesen
5. async-await: Es ist der syntaktische Zucker des Generators
Verglichen mit Generator:
1. Funktion* durch asynchrone Funktion ersetzen
2. Ersetzen Sie yield durch „await“
3. Auf das „await“ folgt das Promise-Objekt. Andere Datentypen sind ebenfalls in Ordnung, werden jedoch synchron statt asynchron ausgeführt.
Das obige ist der detaillierte Inhalt vonSo implementieren Sie Generator asynchron in JS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!