1

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?

Volatil3
  • 14,253
  • 38
  • 134
  • 263
  • 3
    Does 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 Answers1

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.

For setInterval enter image description here For setTimeout enter image description here

prosach
  • 312
  • 2
  • 14