JS中如何在延迟后打印数字

Tom*_*Dev 1 javascript

这是初学者的问题。我试图理解 setTimeout。我想在延迟 2 秒后打印每个数字。但是,我只能延迟整个函数,而不能延迟数字。谁能告诉我该怎么做?

function print() {
  for (let i = 10; i >= 0; i--) {
    console.log(i);
  }
}

setTimeout(print, 2000);
Run Code Online (Sandbox Code Playgroud)

Gab*_*oli 7

您需要使用方法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)


aze*_*ndh 5

另一种方法是使用setInterval. 那么这个任务就更自然了setTImeout

let i = 10;
const interval = setInterval(() => {
  console.log(i);
  i--;
  if(i === 0){
    clearInterval(interval);
  }
}, 2000);
Run Code Online (Sandbox Code Playgroud)