Javascript循环与延迟代码修复
javascript loop with delay code fix
如何按
修复此代码如何在JavaScript循环中添加延迟?
仍然会被毫不延迟地执行。
const spkz = responsiveVoice.speak;
let azj = ['hi', 'hello', 'how are ya'];
var i = 1; // set your counter to 1
function myLoop() { // create a loop function
azj.forEach((item, index) => {
setTimeout(() => { // call a 3s setTimeout when the loop is called
alert(item); // your code here
i++; // increment the counter
if (i < index) { // if the counter < 10, call the loop function
myLoop(); // .. again which will trigger another
} // .. setTimeout()
}, 10000)
})
}
myLoop();
你不能像那样"暂停" javascript。a setTimout
是异步的,这意味着它不会阻止同步代码的运行,所以当你运行任何类型的"for"循环时,它会一次调用所有的setTimeouts
。
您可以像这样创建一个手动循环,并使用递归延迟它:
let azj = ['hi', 'hello', 'how are ya'];
var i = 0;
function myLoop() {
setTimeout(function() {
console.log(azj[i])
i++
if (i < azj.length) {
myLoop()
}
}, 3000)
}
myLoop();
您不必在循环函数中使用forEach
。相反,您可以使用azj[i]
相关文章:
- 如何在有延迟的情况下对两个代码进行积分
- 延迟代码执行,直到下载完成
- 在单击下一个按钮之前,在JavaScript代码中添加5秒的延迟
- 如何在不停止HTML呈现的情况下放置停止代码的延迟
- 是否有一个Javascript函数可以使代码在运行时延迟
- 按顺序调用javascript代码的替代方法,其间有延迟
- 在一段真实代码中延迟
- 在下面的 Angular Material 代码中了解此延迟语法及其用途
- jquery延迟代码的执行
- 如何在下面的代码中添加setTimeout来延迟渐变动画
- 在不使用外部库的情况下为JavaScript代码添加简单延迟
- 为什么这个ajax代码会延迟
- 延迟Javascript/Java中函数内的代码执行
- 在异步代码块中处理的多个ajax延迟调用的数组,后面是同步的最终代码块
- 执行代码,但延迟'return'JS中的函数
- Javascript代码执行延迟
- “setTimeout"与“debounce"插件-延迟对事件的代码执行
- Javascript循环与延迟代码修复
- 尝试使用链接延迟,但我尝试的任何代码都不工作
- 无法返回地理代码延迟