属性 访问生成的对象

Property access of yielded objects

我正在尝试访问使用 yield 传回的对象的 属性。

function*test() {
 console.log(yield)
 console.log(yield(true).test)
}

var generator = test()

generator.next({ test: true })
generator.next({ test: true })
generator.next({ test: true })

但是,属性 没有被访问。

Object { test: true }
Object { test: true }

我是不是误会了什么,或者这就是它的工作方式,我应该只将 yield 结果分配给一个临时变量?

您误读了 parens。 yield 是关键字,不是函数。

console.log(yield(true).test)

相同
console.log(yield (true).test);

console.log(yield (true.test));

所以您仍在记录 yield 的结果,.test 没有处理传递给 .next 的值。

你想要

console.log((yield true).test);