On 4 nov, 07:00, Alan Gutierrez <[email protected]> wrote: > This gist... > > http://gist.github.com/4010472 > > ...contains a program that executes a function every millisecond using > setInterval. It then uses setTimeout to executes a function every two > milliseconds, then every millisecond, then it invokes a function > repeatedly with a zero value (which is supposed to be reset to 1 > according to the documentation.) Finally, it invokes a function > repeatedly using nextTick. > > Using the high-resolution timer, the program samples the intervals and > prints them to standard out. > > The setInterval function works as expected, invoking its callback at > millisecond intervals. With a value of 2, setTimeout will invoke its > callback after a two millisecond interval. With a value of 1 or 0, > setTimeout calls back its callback immediately, in about two > microseconds, a little bit faster than nextTick. > > Is this correct? I'd expect that setTimeout would always wait for at > least a millisecond before invoking its callback.
The setTimeout(ƒ,0) behaving as a nextTick(ƒ) is the proper behaviour for a setTimeout(ƒ,0) with no clamping (the browsers clamp it to a minimun of several ms, mainly due to a bug in jquery). But, the setTimeout(ƒ,1) behaving as a setTimeout(ƒ,0) is *clearly* a bug. Node's timers have always been buggy -and still are- for example this: setTimeout(a,10), setTimeout(b,10) may fire a then b, or b then a, which is another bug. Cheers, -- Jorge. -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
