Javascript - setTimeout/setInterval 在函数前执行倒计时

Javascript - setTimeout/setInterval execute countdown before the function

我有一个定时器,它使用 setTimeout 或 setInterval 每 3 秒触发一个函数。关键是我需要在函数之前执行倒计时,而不是先执行函数再执行定时器。

这是代码:

var timer;

document.getElementById('myBtn').addEventListener('mousedown', function (){
    timer = setInterval(alert("Ey, release the button!"), 3000);
});

这应该是操作顺序:

  1. 点击并按住按钮。
  2. 开始倒计时...3、2、1...
  3. 触发功能。

做类似的事情

var timer;

   document.getElementById('myBtn').addEventListener('mousedown', function (){
     timer = setTimeout(function(){
       alert("Ey, release the button!");
     }, 3000);
});

您可以在计时器结束时触发另一个函数。因为你只需要调用一次..你可以只使用 setTimeout

document.getElementById('myBtn').addEventListener('mousedown', function (){
    alert("Ey, release the button!")
    setTimeout(fireMe, 3000);
});

function fireMe() {
    // Boom
}

您可能还想在 mouseup 事件上添加 clearTimeout