【发布时间】:2020-03-26 03:24:42
【问题描述】:
在为生成器设置变量后,例如 让基因 = 生成器();
通常,我需要做的是 gene.next() 来迭代上面制作的生成器。 但是,在下面这个例子中,(完整代码请参考链接)
https://codepen.io/jotnajoa/pen/MWwzpJJ
在再次为生成器设置变量后设置另一个变量。 我不知道为什么会这样。另外,我没有得到
的部分let result = genratorAnimation.next();
//genratorAnimation.next();
let interval = setInterval(function(){
if(!result.done) {
genratorAnimation.next();
}
else {
clearInterval(interval)
}
}, 50);
在此代码的末尾。 因为,据我了解,当一切都产生时,生成器会为“完成”返回“真”。
然而,在这个例子中,它正在做相反的事情。这是“not result.done”,在运行生成器时是错误的。
为什么会这样?
总结一下,
1) 为什么我需要为间隔设置另一个变量。
我假设 setInterval( ######## ) 就足够了,而不是 let xxx = setInterval 来运行循环。 因为,如果我为 setInterval 设置变量, 在我输入变量“xxx”之前什么都不会发生。但是在这段代码中,即使我不调用变量它也在运行。
2) 为什么 !result.done 使循环播放。 因为 !result.done 是 false 并且如果 false 在 if 语句中,事情会发生在 if 之后不会运行。
If 语句仅在条件为真时运行。 不是吗?
提前谢谢你。
【问题讨论】:
标签: javascript d3.js generator data-visualization