Maison >interface Web >js tutoriel >Qu'est-ce que la fonction générateur en JavaScript ? et comment ça marche ?

Qu'est-ce que la fonction générateur en JavaScript ? et comment ça marche ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-31 18:47:11474parcourir

What is generator function in JavaScript? and How does it work?

Une fonction génératrice en JavaScript est un type spécial de fonction qui peut être mise en pause et reprise pendant son exécution. Il est défini à l'aide de la syntaxe function* et utilise le mot-clé rendement pour produire des valeurs de manière séquentielle.

Caractéristiques clés de la fonction générateur

  1. Définir avec fonction* :
function* generatorFunction(){
  yield 1;
  yield 2;
  yield 3;
  yield 4; 
}

2.Renvoie un itérateur

  • Lorsqu'une fonction génératrice est appelée, elle ne s'exécute pas immédiatement. Au lieu de cela, il renvoie un objet itérateur.
  • L'itérateur a une méthode next() qui est utilisée pour contrôler le exécution.
    1. mot-clé de rendement :
  • Le mot-clé rendement est utilisé pour produire une valeur et mettre le générateur en pause.
  • Lorsque next() est à nouveau appelé, le générateur reprend l'exécution à partir du point où il a été interrompu.

Exemple de fonction générateur :

function* generatorFunction(){
   console.log("start");
   yield 1;
   console.log("Resume");
   yield 2; 
   console.log("End");

}
const gen = generatorFuntion();
console.log(gen.next());
console.log(gen.next());
console.log(gen.next());

Sortir

start 
{value: 1, done: false}
Resume
{value: 2, done: false}
End
{Value: undefined, done: true}

Comment ça marche

  1. Exécution sur next() :
    • lorsque next() est appelé pour la première fois, le générateur démarre exécution et s'exécute jusqu'au premier rendement.
    • il renvoie un objet {value, done}, où :
      • value : La valeur produite par le rendement.
      • done : Un booléen indiquant si le générateur est terminé
  2. Pause et reprise.
    • La fonction suspend l'exécution lorsqu'elle rencontre un rendement.
    • Il reprend après la pause lorsque next() est à nouveau appelé.
  3. achèvement :
    • Lorsque la fonction génératrice se termine, la propriété done devient vrai.

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