Maison  >  Article  >  interface Web  >  Comment implémenter Generator de manière asynchrone dans JS

Comment implémenter Generator de manière asynchrone dans JS

一个新手
一个新手original
2017-10-11 09:57:461792parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn