gpt4 book ai didi

javascript - 在生成器内部的生成器上调用 next()

转载 作者:行者123 更新时间:2023-11-30 11:43:50 25 4
gpt4 key购买 nike

let gen = testGenerator(),
foo = true;

console.log( gen.next().value ); //logs 1
console.log( gen.next().value ); // throws 'Uncaught Error: Generator is already running'

function *testGenerator(){
yield 1;
if(foo) gen.next(); //I want to immediately advance the generator after the 'yield 2' and run again to 'yield 3'
yield 2;
console.log('bar')
yield 3;
}

我希望能够根据生成器运行时遇到的一些逻辑将 JS 生成器推进到下一阶段(在此示例中,“foo”是否为真,在“yield 1”和“yield 2”之间).

我明白为什么这段代码不起作用(我不能在生成器完成运行之前调用'gen.next()'),但我想知道是否有立即调用的'下一步'生成器内部的生成器。

最佳答案

您可以简单地重写逻辑以仅在 foo 不为真时执行第二个 yield。 https://jsfiddle.net/xnxxs20u/

 function *testGenerator(){
yield 1;
if(!foo) yield 2;
console.log('bar')
yield 3;
}

关于javascript - 在生成器内部的生成器上调用 next(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41686406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com