Ich möchte Eigenschaften für die instanziierte GeneratorFunktion festlegen. Ich möchte in der Lage sein, die length
Eigenschaft als einen Komfort festzulegen, damit der Verbraucher eine Vorstellung davon bekommen kann, wie viele Werte erzeugt werden. Zum Beispiel:Referenz GeneratorFunction-Instanz aus der Funktionsdefinition
function* produceValues(someInput) {
this.length = determineLength(someInput)
yield // something
}
const gen = produceValues(input)
console.log(gen.length)
Wenig überraschend, this
mit bezieht sich nicht auf die Instanz, sondern die global. Bietet JavaScript eine Möglichkeit, auf das instanziierte Objekt zuzugreifen?
Ich habe gerade https://github.com/allenwb/ESideas/issues/9 eingereicht. Allerdings gibt es ein größeres Problem: Der Code in der Generator-Funktion beginnt nicht zu laufen, bis 'next()' zum ersten Mal aufgerufen wird, also wäre es zu spät, '.length' zu initialisieren – Bergi