Пытаясь понять генератор, вместо следующего:
function* powerSeries(number,power) {
let base = number;
while (true) {
yield Math.pow(base, power);
base++
}
}
let n = powerSeries(3,2)
n.next() // value: 9
n.next() // value: 16
...
Я пытался так:
function* powerSeries(number,power) {
let base = number;
yield Math.pow(base, power);
return base++ // was trying to understand what happens if using return
}
let n = powerSeries(3,2)
n.next() // value: 9
n.next() // value: 3 But how ????
Я могу понять, что пост-увеличение не выполняется, потому что оно не внутрипетля. Таким образом, это остается 3 для базы. Но как это становится 1 для силы, так что это приводит к 3?
Признано: Спасибо всем. Я был озадачен тем, что если я использую оператор return, он все равно вызовет yield.