如何使用值调用`next()`方法替换javascript生成器中的先前`yield`表达式?

问题描述 投票:0回答:1

这是来自MDN

gen.next(value)该值将作为yield表达式的结果进行分配。例如,在variable = yield expression中,传递给.next()功能的值将分配给variable

也是,这是从Medium article

第二个next(10)调用,将整个第一个yield表达式替换为10

所以我的问题是,next(value)如何代替“先前”的收益表达?它在后台如何运作。我已经阅读了有关迭代器的信息,但在这种情况下我不理解next()的工作原理。

javascript generator
1个回答
0
投票

当生成器执行yield语句时

variable = yield value;

它将value发送给next()的最新呼叫者。然后,它等待另一个对next()的呼叫。作为参数传递给该调用的值用作此yield表达式的值,该表达式已分配给variable

然后,继续生成器中的其余代码。下次使用yield会重复上述过程。

© www.soinside.com 2019 - 2024. All rights reserved.