function* generatorFunction() {
yield (yield 1)(yield 2)(yield 3)();
}
var iterator = generatorFunction();
// [1, 2, 3]
var iteratedOver = [iterator.next().value, iterator.next().value, iterator.next().value];
Ich bin mir nicht sicher, wie das funktioniert.ES6 Ausbeute (Ausbeute 1) (Ausbeute 2) (Ausbeute 3)()
yield
gibt keine Funktionsreferenz, also was sind die Klammern Aussagen wie (yield 2)
tun - sind sie Fett Pfeil anonyme Funktionen ohne Körper? Wie werden sie mit einer solchen partiellen Anwendung bezeichnet?
Ich vermisse etwas hier, kann jemand erklären?
Update: Versuchte auf drei Browser, Chrome 50.0.2661.86, Safari 9.1 (50.0.2661.86), Firefox 44.0.2, führen alle ohne Fehler.
ESFiddle führt es auch ohne Fehler aus.
Kommentatoren Bericht Babel führt auch ohne Fehler aus.
Die Quelle der Frage ist von http://tddbin.com/#?kata=es6/language/generator/send-function, die zweite Kata.
Ihr Codebeispiel läuft nicht für mich. 'Uncaught TypeError: (Zwischenwert) ist keine Funktion' –
' yield' gibt zurück, was immer Sie in '.next (...)' übergeben. Du hast nur Glück, dass du nur '.next()' 2 mal aufgerufen hast, es würde das nächste Mal werfen. – Bergi
@Ben: Ja, aber dann stellt sich die Frage ... Was hat Sie dazu gebracht zu glauben, dass dieser Code überhaupt gültig war? Hast du es irgendwo gesehen? –