[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Generator [Back]  [Original]

Generator - JavaScript | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

Generator

Baseline Large disponibilit

Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 2016.

L'objet Generator est retourn par une fonction gnratrice et il respecte la fois le protocole itrable et le protocole itrateur.

Generator est une sous-classe de Iterator.

Dans cet article

Constructeur

Il n'existe aucune entit JavaScript qui corresponde au constructeur Generator. Les instances de Generator doivent tre retournes par des fonctions gnratrices :

js
function* generator() {
  yield 1;
  yield 2;
  yield 3;
}

const gen = generator(); // "Generator { }"

console.log(gen.next().value); // 1
console.log(gen.next().value); // 2
console.log(gen.next().value); // 3

Il existe seulement un objet cach qui est l'objet prototype partag par tous les objets crs par les fonctions gnratrices. Cet objet est souvent prsent comme Generator.prototype pour lui donner l'apparence d'une classe, mais il devrait plus justement tre appel GeneratorFunction.prototype.prototype, car GeneratorFunction est une entit JavaScript relle. Pour comprendre la chane de prototypes des instances de Generator, voir GeneratorFunction.prototype.prototype.

Proprits d'instance

Ces proprits sont dfinies sur Generator.prototype et partages par toutes les instances de Generator.

Generator.prototype.constructor

La fonction constructeur qui a cr l'objet instance. Pour les instances de Generator, la valeur initiale est GeneratorFunction.prototype.

Note : Les objets Generator ne conservent pas de rfrence la fonction gnratrice qui les a crs.

Generator.prototype[Symbol.toStringTag]

La valeur initiale de la proprit [Symbol.toStringTag] est la chane de caractres "Generator". Cette proprit est utilise dans Object.prototype.toString().

Mthodes d'instance

Hrite galement des mthodes d'instance de son parent Iterator.

Generator.prototype.next()

Retourne une valeur produite par l'expression yield.

Generator.prototype.return()

Agit comme si une instruction return tait insre dans le corps du gnrateur la position actuelle de suspension, ce qui termine le gnrateur et lui permet d'effectuer toute tche de libration lorsqu'elle est combine avec un bloc try...finally.

Generator.prototype.throw()

Agit comme si une instruction throw tait insre dans le corps du gnrateur la position actuelle de suspension, ce qui informe le gnrateur d'une condition d'erreur et lui permet de grer l'erreur, ou d'effectuer une libration et de se clturer.

Exemple

Un itrateur infini

js
function* infinite() {
  let index = 0;

  while (true) {
    yield index++;
  }
}

const generator = infinite(); // "Generator { }"

console.log(generator.next().value); // 0
console.log(generator.next().value); // 1
console.log(generator.next().value); // 2
// 

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-generator-objects

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page