Bringing setTimeout to ECMAScript

John J. Barton johnjbarton at johnjbarton.com
Sun Mar 20 12:24:09 PDT 2011


On 3/20/2011 12:03 PM, Kyle Simpson wrote:
> ...
>> Multiple repeated calls to |setTimeout(f,0)| are bugs
>
> I don't agree with that assertion at all. Two different functions 
> might "queue up" two different snippets to happen "as soon as 
> possible, later", each of them using their own setTimeout(..., 0).
But I didn't say two different snippets. I said Multiple repeat calls to 
the same snippet.

>> and setInterval of zero would be a bug.
>
> setInterval(...,0) may be silly, but that doesn't mean it's a bug. It 
> means "make this happen as fast as possible", just like above where 
> setTimeout(...,0)  means "make this happen as soon as possible".
Looping as fast as possible is likely to be a bug. It's not similar to 
queuing events.
>
> The "swamping" would occur if setInterval(f,0) was actually going to 
> spin in sub-millisecond speeds. It could also occur if you fake 
> setInterval with:
>
> function f() {
>   // ...
>   setTimeout(f,0);
> }
> f();
Yes, like I said, multiple repeat calls to the same snippet.
>
> But in either of those cases, I don't see why there'd be any reason 
> for "clamping" at anything higher than 1ms (being the smallest unit of 
> time I can address with the API anyway)?
I can't see any reason to lump event queuing with looping when its 
looping that causes the issues.

jjb


More information about the es-discuss mailing list