Javascript Setinterval Immediately Run
I found a solution to run interval in javascript immidiately, not waiting for a first 'timeout' setInterval(function hello() { console.log('world'); return hello; }(), 2500);
Solution 1:
Perhaps the most proper way to do it would be to take the whole callback outside of the setInterval call and put it in a separate variable:
(function () {
window.Banner = {
doMagic: function () {
var magic = function() {
console.log('magic');
};
setInterval(magic, 2500);
magic();
}
}
})();
Banner.doMagic();
The effect is the same as your first code, but this way your code is a little cleaner.
Solution 2:
Your no longer self-executing the function in your 2nd code snippet. You need to change this to the following:
doMagic: function () {
setInterval(functionmagic() {
console.log('magic');
return magic;
}(), 2500);
}
I agree with others though, this isn't the cleanest way to do this and isn't very obvious to the next developer who comes along. I recommend storing the function in a variable, executing it immediately and then running it in the setInterval
also:
doMagic: function () {
var magic = functionmagic() {
console.log('magic');
return magic;
}
magic();
setInterval(magic, 2500);
}
Solution 3:
If you add the parenthesis to the below code part it does
doMagic: function () {
setInterval(functionmagic() {
console.log('magic');
return magic;
}(), 2500); // added them here
}
Solution 4:
In your code there is no way to perform the required task, instead follow the below approach:
// Use function to perform the task.functiondoTask () {
console.log("...");
}
// Perform task for the first time.doTask();
// On interval do task.setInterval(doTask, 2500);
Post a Comment for "Javascript Setinterval Immediately Run"