您如何在JavaScript中暂停/恢复/延迟for循环?
假设我有这样的东西
svg.selectAll('rect')
.style("fill",function(d){
return d.salary >= 4000 ? d3.color("green") : 'yellow';
})
.style('fill-opacity',0.5)
.style("stroke", 'black')
.style("stroke-width",0.2);
我们可以使用类似的方法来延迟整个功能,但不适用于for循环
for (let i = 0; i < 10; i++) {
console.log('value of i is',i)
}
答案 0 :(得分:0)
您可以在循环内使用async / await语法。
for (let i = 0; i < 10; i++) {
console.log('value of i is',i)
await delayAFn(1000);
}
答案 1 :(得分:0)
过去我们要做的是建立队列类型,如果超时,您可以使用超时来调用下一个迭代。
function nextStep(i) {
console.log(`value of i is ${i}`)
if (i < 9) {
window.setTimeout(nextStep, 1000, ++i)
} else {
console.log('done')
}
}
nextStep(0)