I already have tried setInterval()
, it seemed perfect but the issue is that it does not initiate the first call immediately and waits for X seconds and then it gives desired value, is there some other way or should I run it an infinite loop and put a sleep
like functionality in it?
Asked
Active
Viewed 691 times
1

Volatil3
- 14,253
- 38
- 134
- 263
-
3Does this answer your question? [Execute the setInterval function without delay the first time](https://stackoverflow.com/questions/6685396/execute-the-setinterval-function-without-delay-the-first-time) – lusc Dec 30 '21 at 07:41
-
You should try cronjob https://www.npmjs.com/package/node-cron – divyraj Dec 30 '21 at 07:47
1 Answers
4
If your issue is simply it doesn't call for first time then it is OK
function doThis(){
console.log("hello");
}
const time = 1000;
doThis(); // Calls for the first time
setInterval(doThis(),time); // Now it starts the samething.
//There is another option also for same thing:
setInterval(function doThis() {
console.log('hello');
return doThis();
}(), time);
But It is not recommended if function takes longer than delayed time
More on this statement:
https://dev.to/akanksha_9560/why-not-to-use-setinterval--2na9
https://chrisblackwell.me/setinterval-is-bad/
function doThis() {
console.log("hellow");
setTimeout(doThis, 1500);
}
doThis();
The problem that happens with setInterval
doesn't happen here, because this only schedules the next iteration, not all future ones.

prosach
- 312
- 2
- 14
-
If the first line in func() is the settimeout call for the next iteration, won't they be identical or close-to? – Miles Prower Mar 07 '22 at 17:42