【发布时间】:2018-05-07 10:44:30
【问题描述】:
当我定义了这种生成器时
function *process() {
let value = 4 * (yield 42)
console.log(value)
}
然后我运行它:
let it = process()
it 变量获取处于暂停状态的迭代器。然后我打电话
it.next()
运行生成器的主体直到yield 语句。然后我再次调用.next() 来恢复生成器函数,将 10 作为参数传递给它
it.next(10)
这是迭代器中的最后一个yield,据我所知,第二个.next() 调用10 将10 代替yield,导致4 * (10 42),评估这是控制台产量Uncaught SyntaxError: Unexpected number,但是在运行代码时
function *process() {
let value = 4 * (yield 42)
console.log(value)
}
let it = process()
it.next()
it.next(10)
结果为@987654338@。
如何从第二次.next(10) 电话开始解释?为什么会记录40?
【问题讨论】:
标签: javascript ecmascript-6 generator