Un générateur est un fonction qu'il est possible de quitter puis reprendre. Le contexte de la fonction est sauvegardé entre les reprises.
Il se déclare avec le mot clé function*
.
Le mot clé yield
permet de publier une valeur.
function* creerID(){
var index = 0;
while(index < 3){
yield index++;
}
}
// gen est un objet Generator.
// il possède les méthodes suivantes :
// * next() : récupère la valeur publiée par yield
// * return(): récupère la valeur publiée et termine le générateur
// * throw() : lève une exception et termine le générateur
var gen = creerID();
console.log(gen.next().value); // 0
console.log(gen.next().value); // 1
console.log(gen.next().value); // 2
console.log(gen.next().value); // undefined
Pour aller plus loin :