问题
Hello I have this snippet of code that will fire some even after time that I choose.
The problem is that if, for example I put 3 seconds it will fire every 3 seconds, what I need is it to fire only once after 3 seconds.
function playSound(timeLeft){
var sendDataTimeout = function(){
alert('OK');
}
var intervalReference = 0;
clearInterval(intervalReference);
intervalReference = setInterval(sendDataTimeout, timeLeft);
}
回答1:
Use setTimeout instead, it works almost the same but will only fire once. You have clearTimeout and setTimeout so its very similar to setInterval
function playSound(timeLeft){
var sendDataTimeout = function(){
alert('OK');
}
setTimeout(sendDataTimeout, timeLeft);
}
You don't have to use clearTimeout anymore. But FYI it exist and works the same as clearInterval.
回答2:
You don't need setInterval, you need setTimeout.
As the name says, setInterval fires regularly, while setTimeout fires only once. The usage is the same though.
来源:https://stackoverflow.com/questions/9741837/setinterval-how-to-fire-only-once