У меня есть генератор, возвращаемый мне вызовом функции из библиотеки, которую я использую. Затем я передаю этот генератор функции, которая перебирает его и выполняет кучу логики для каждого из элементов. Затем я хочу обратиться к этому же генератору после вызова этой функции. Однако, похоже, генератор больше не имеет/не генерирует никаких элементов. Код выглядит следующим образом:
let myGenerator = this.generatorFunc();
console.log(Array.from(myGenerator).length); //prints N which is specified elsewhere
this.iterateThroughGenerator(myGenerator);
console.log(Array.from(myGenerator).length); //now prints 0 when I need it to be N still
iterateThroughGenerator(generator) {
for(let element of generator) {
// do a bunch of stuff with element
}
}
this.getGeneratorFunc()
? - person Patrick Roberts   schedule 28.06.2019getGeneratorFunc()
плохо назван. Эта функция является функцией-генератором. Он возвращает итератор генератора, который можно использовать только один раз. - person Patrick Roberts   schedule 28.06.2019next()
. Как только его внутреннее состояние достигает конца функции,next()
просто возвращает{ value: undefined, done: true }
, как объясняет Берги в своем ответе. - person Patrick Roberts   schedule 28.06.2019