Javascript setTimeout 随机定时器延迟按顺序显示数组项
Javascript setTimeout with random timer delay displaying array items in order
我编写了以下代码,使用随机计时器延迟显示数组的每一项。
const letters = ['H', 'e', 'l', 'l','o'];
const typeLetters = _ => {
letters.forEach((letter) => {
let ranNum = Math.ceil(Math.random() * 1000);
setTimeout(function(ranNum) {
lettersCon.textContent += letter;
}, ranNum * 1);
})
}
我遇到的问题是数组项没有按顺序显示,应该显示 Hello。我相信这是由于事件循环的工作原理。
如何在保持输出顺序的同时使用随机定时器延迟。
这样的事情怎么样?
const letters = ['H', 'e', 'l', 'l','o'];
const typeLetters = _ => {
let total= 0;
letters.forEach((letter) => {
let ranNum = Math.ceil(Math.random() * 1000);
total+=ranNum;
setTimeout(function(ranNum) {
lettersCon.textContent += letter;
}, total);
})
}
我编写了以下代码,使用随机计时器延迟显示数组的每一项。
const letters = ['H', 'e', 'l', 'l','o'];
const typeLetters = _ => {
letters.forEach((letter) => {
let ranNum = Math.ceil(Math.random() * 1000);
setTimeout(function(ranNum) {
lettersCon.textContent += letter;
}, ranNum * 1);
})
}
我遇到的问题是数组项没有按顺序显示,应该显示 Hello。我相信这是由于事件循环的工作原理。
如何在保持输出顺序的同时使用随机定时器延迟。
这样的事情怎么样?
const letters = ['H', 'e', 'l', 'l','o'];
const typeLetters = _ => {
let total= 0;
letters.forEach((letter) => {
let ranNum = Math.ceil(Math.random() * 1000);
total+=ranNum;
setTimeout(function(ranNum) {
lettersCon.textContent += letter;
}, total);
})
}