这是初学者的问题。我试图理解 setTimeout。我想在延迟 2 秒后打印每个数字。但是,我只能延迟整个函数,而不能延迟数字。谁能告诉我该怎么做?
function print() {
for (let i = 10; i >= 0; i--) {
console.log(i);
}
}
setTimeout(print, 2000);Run Code Online (Sandbox Code Playgroud)
您需要使用方法setTimeout内部print(内部for),并为每次迭代提供不同的延迟。
function print() {
for (let i = 10; i >= 1; i--) {
setTimeout(() => {
console.log(i);
}, 2000 * (10 - i));
}
}
print();Run Code Online (Sandbox Code Playgroud)
另一种方法是使用setInterval. 那么这个任务就更自然了setTImeout。
let i = 10;
const interval = setInterval(() => {
console.log(i);
i--;
if(i === 0){
clearInterval(interval);
}
}, 2000);Run Code Online (Sandbox Code Playgroud)