Maison > Article > interface Web > Comment implémenter Generator de manière asynchrone dans JS
1. Type de données Symbole
Le type de données Symbole est nouvellement ajouté dans ES6.
Types de données natifs avec l'attribut [Symbol.iterator] : tableau, type tableau, carte, ensemble,
has[Symbol.iterator]
l'objet attribut peut être directement appelé pour générer un Iterator
objet
2. Objet itérateur : est un objet pointeur, l'objet traverseur
Méthode : next() : Le format renvoyé est {value : , done : }
Utiliser for..of to traverser : chaque fois que vous traversez, vous obtenez la valeur.
3. Geneteror
function* G(){ yield 200; yield 300; return 400; } var g=G();
1. Le générateur n'est pas une fonction lors de la définition du générateur, utilisez la fonction* et le rendement. . pour renvoyer les résultats.
2. Après avoir appelé Generator, le code qu'il contient ne sera pas exécuté immédiatement, mais sera dans un état suspendu. Et générez un objet générateur.
3. Lorsque rencontre yield
, il exécutera l'expression qui suit yeild
et renverra la valeur après l'exécution, puis entrera à nouveau dans l'état de pause à ce moment. , done: false
Generator renvoie également un objet itérateur, vous pouvez donc utiliser la méthode suivante, for..of
1. Lors de l'utilisation de la méthode next, les paramètres de next seront transmis à la valeur précédant le rendement exécuté.
2.yield* peut référencer un autre générateur dans un générateur.
4. Le générateur implémente un fonctionnement asynchrone
1. Une fonction thunk est requise, avec un seul paramètre, la fonction de rappel
2. La bibliothèque co est généralement utilisée pour empaqueter des opérations asynchrones, ce qui est pratique et concis.
3. Le rendement doit être suivi d'une fonction thunk.
4. Le générateur s'appuie toujours sur le rappel
5. async-await : C'est le sucre syntaxique du générateur
Comparé au Générateur :
1. Remplacer la fonction* par la fonction asynchrone
2. Remplacez le rendement par wait
3. L'attente est suivie de l'objet de promesse. D'autres types de données sont également acceptables, mais elles seront exécutées de manière synchrone plutôt qu'asynchrone.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!