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?

2

1 Answer 1

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

Sign up to request clarification or add additional context in comments.

1 Comment

If the first line in func() is the settimeout call for the next iteration, won't they be identical or close-to?

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.