Randomblue Randomblue - 5 months ago 25
Javascript Question

Difference between setTimeout(fn, 0) and setTimeout(fn, 1)?

The jquery source features uses of

setTimeout
with both
0
and
1
as second argument. I'm under the impression that they both mean "execute the function as soon as you can".

Is this correct? Is there a difference between the two?

Answer

setTimeout has a minimum timeout of 4ms. So there is actually no difference between the two.

If the currently running task is a task that was created by the setTimeout() method, and timeout is less than 4, then increase timeout to 4.

Spec

EDIT: As pointed out by Ahmad in the comments, the spec has changed now, so the answer would currently be, "It depends."