繁体   English   中英

Javascript Generator:如何获取一个对象作为参数以生成另一个对象?

[英]Javascript Generator: how to get an object as parameter to generate another object?

我正在尝试获取“模板”对象作为生成器的输入,以获取其他对象。 我将能够在每一代之前更改模板。

它几乎按预期工作,但是我遇到了以下问题。 我只是在这里汇总了问题的简化示例:

function* generator () {
    while(true) {
        let obj = yield
        yield {
            name: obj.name
        }
    }
}
let gen = generator()

let obj = {
    name: 'name'
}
gen.next(obj)

obj.name = 'test'
for(let i=3; i--; ) {
    let item = gen.next(obj).value
    console.log(JSON.stringify(item))
}

我期望得到这样的结果:

{name: test}
{name: test}
{name: test}

但是,我得到:

{name: test}
undefined
{name: test}

因为你yield两次,一次却一无所获。 仅产生一次收益:

 let obj = {};
 while(true) {
    obj = yield { name: obj.name };
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM