JSFiddle - React, Tailwind, and code Playground

by booktu8

JavaScript

var countIndex = 1; //倒计时任务执行次数
const timeout = 1000; //时间间隔1秒
const startTime = new Date().getTime();

countdown(timeout);

function countdown(interval) {
  setTimeout(function() {
    const endTime = new Date().getTime();

    //误差
    const deviation = endTime - (startTime + countIndex * timeout);
    countIndex++;

    //执行下一次倒计时,去除误差的影响
    countdown(timeout - deviation);

    console.log(timeout, deviation, countIndex)

  }, interval)
}