Wie wird der ES6-Generator geklont?

Ich versuche ein @ zu erstellList Monade in ES6 mit Generatoren. Damit es funktioniert, muss ich eine Kopie eines Iterators erstellen, der bereits mehrere Zustände belegt hat. Wie klone ich einen Iterator in ES6?

function* test() {
    yield 1;
    yield 2;
    yield 3;
}

var x = test();
console.log(x.next().value); // 1
var y = clone(x);
console.log(x.next().value); // 2
console.log(y.next().value); // 2 (sic)

Ich habe es versuchtclone undcloneDeep vonlodash, aber sie waren nutzlos. Iteratoren, die auf diese Weise zurückgegeben werden, sind native Funktionen und behalten ihren Status intern bei. Es scheint also keine Möglichkeit zu geben, dies mit eigenem JS-Code zu tun.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage