TL; DR:javascript generator.next()
和相关的yield
是否是阻止过程?还是收益率实际上使结果排队?
详细信息:
function* nextIntegerGenerator(index) {
while (true) {
yield index++
}
}
nextInteger = nextIntegerGenerator(0)
这很好。而且,如果我将结果循环显示在页面上几次,则使用空白/新页面(大约:空白),也可以正常工作。
for (let i = 0; i < 10; i++) {
document.body.innerText = nextInteger.next().value
}
但是,如果我以永久循环的方式进行操作,则页面上不会显示新数字,并且会挂起:
while (true) {
document.body.innerText = nextInteger.next().value
}
..而我必须杀死该页面。
这使我相信收益正在阻塞,而不是排队。
是真的吗?我试图对此发表明确声明,但失败了。可能就在我的鼻子下面。请指针!