【发布时间】:2021-04-16 04:38:04
【问题描述】:
在javascript生成器中使用yield时遇到问题。让我们先看看我的代码-
function* gen(a, b) {
let k = yield a + b;
let m = yield a + b + k;
yield a + b + k + m;
}
let x = gen(10, 20);
console.log(x.next());
console.log(x.next());
console.log(x.next());
在上面的代码中,在我第一次运行 next() 时,它给了我 30 的值。但是当我第二次尝试时,在第二次 next() 中,它给了我一个 NAN 值。这意味着,yield没有在k中赋值a+b的值。而是直接移到下一行。但我认为,它应该先给k赋值。
这里发生了什么?如果你知道,请告诉我。
【问题讨论】:
标签: javascript