如何在另一个函数中不断调用' next() '元素?



我不是很熟悉JS. 我正在寻找一种生成NEXT ()后续数组元素的方法,这将是我的Django中下一个显示图像的字符串的一部分项目。

为此,我在我的JS中构建了一个生成器文件:

function* indexGenerator() {
let index = 1;
while (index < 78) {
yield index++;
}
if (index = 78)
yield* indexGenerator();
};

…现在我正试图找出如何在另一个函数中使用它,其目标是实现next().value作为我的字符串路径的一部分:var file = "<img src="slides/light_" + number.next().value + ".jpg" />";

我尝试了几种不起作用的方法。其中,

setInterval(function animationslider()
{
var number = indexGenerator();
var file = "<img src="slides/light_" + number.next().value + ".jpg" />";
document.getElementById("animation-slider").innerHTML = file;
}, 5000);

我认为拥有setInterval()将为每个时间间隔从我的生成器产生下一个元素。但这是一个误解。

总体思路是有77图像,将改变每5秒有一个生成器作为引擎。如何修复animationslider()功能?

似乎工作得很好,你只需要把var number = indexGenerator();超出你的超时:

var number = indexGenerator();
setInterval(function animationslider()
{
var file = "<img src="slides/light_" + number.next().value + ".jpg" />";
document.getElementById("animation-slider").innerHTML = file;
}, 5000);

因为在超时回调中使用它会用一个新的indexGenerator实例重新初始化number变量。

最新更新