gpt4 book ai didi

javascript - 如何每秒在索引中连续输出每个数字?

转载 作者:行者123 更新时间:2023-11-30 08:17:44 25 4
gpt4 key购买 nike

我有以下循环:

for (let index = 0; index < 4; index++) {  
setInterval(function() {
console.log(index)
}, 1000);
}

我怎样才能使控制台在第一秒记录 0,第二秒记录 1,第三秒记录 2,第四秒记录 3,第五秒记录 0,等等,直到间隔被清除?

最佳答案

这是一个使用生成器函数的或多或少但更优雅的解决方案。

生成器函数在这里很有用,因为它们的执行可以通过 yield 暂停,并通过调用生成器对象的 next 方法恢复:

function* logger() {
while (true) {
for (let index = 0; index < 4; index++) {
console.log(index)
yield
}
}
}

let generator = logger()
setInterval(() => generator.next(), 1000)

或者,再次使用生成器,您甚至可以yield 当前索引,并让间隔函数记录(或做任何其他事情)它:

function* logger() {
while (true) {
for (let index = 0; index < 4; index++) {
yield index
}
}
}

let generator = logger()
setInterval(() => console.log(generator.next().value), 1000)

关于javascript - 如何每秒在索引中连续输出每个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59220387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com