Ich bin auf ein unerwartetes Verhalten gestoßen, als ich einen großen Millisekundenwert an übergeben habe setTimeout()
. Zum Beispiel,
setTimeout(some_callback, Number.MAX_VALUE);
und
setTimeout(some_callback, Infinity);
beide führen some_callback
dazu, dass sie fast sofort ausgeführt werden, als hätte ich 0
anstelle einer großen Zahl die Verzögerung überschritten .
Warum passiert das?
delay >>> 0
passiert so etwas wie , so dass die verstrichene Verzögerung Null ist. In jedem Fall erklärt die Tatsache, dass die Verzögerung als 32-Bit-Int ohne Vorzeichen gespeichert ist, dieses Verhalten. Vielen Dank!