这是来自MDN:
gen.next(value)
该值将作为yield
表达式的结果进行分配。例如,在variable = yield expression
中,传递给.next()
功能的值将分配给variable
。
也是,这是从Medium article:
第二个
next(10)
调用,将整个第一个yield
表达式替换为10
所以我的问题是,next(value)
如何代替“先前”的收益表达?它在后台如何运作。我已经阅读了有关迭代器的信息,但在这种情况下我不理解next()
的工作原理。
当生成器执行yield
语句时
variable = yield value;
它将value
发送给next()
的最新呼叫者。然后,它等待另一个对next()
的呼叫。作为参数传递给该调用的值用作此yield
表达式的值,该表达式已分配给variable
。
然后,继续生成器中的其余代码。下次使用yield
会重复上述过程。