How do I delay a function call for 5 seconds? [duplicate]

How do I delay a function call for 5 seconds? [duplicate]

This question already has an answer here:

Sleep in JavaScript – delay between actions

9 answers

I want widget.Rotator.rotate() to be delayed 5 seconds between calls… how do I do this in jQuery… it seems like jQuery’s delay() wouldn’t work for this…

Solutions/Answers:

Solution 1:

You can use plain javascript, this will call your_func once, after 5 seconds:

setTimeout(function() { your_func(); }, 5000);

If your function has no parameters and no explicit receiver you can call directly setTimeout(func, 5000)

There is also a plugin I’ve used once. It has oneTime and everyTime methods.

Solution 2:

var rotator = function(){
  widget.Rotator.rotate();
  setTimeout(rotator,5000);
};
rotator();

Or:

setInterval(
  function(){ widget.Rotator.rotate() },
  5000
);

Or:

setInterval(
  widget.Rotator.rotate.bind(widget.Rotator),
  5000
);

Related:  Bootstrap Modal Backdrop Remaining