InterviewHubPRO
Section Overview
Q393

Question 393 of 521

Part 6: Async Internals, Memory, Microtasks & Web APIs (329 - 403)

75%
JavaScript Internals (521 Qs)•Part 6: Async Internals, Memory, Microtasks & Web APIs (329 - 403)

How do you implement zero timeout in modern browsers

You can't use setTimeout(fn, 0) to execute the code immediately due to minimum delay of greater than 0ms. But you can use window.postMessage() to achieve this behavior.

Practical Code Example

javascript
// Implementing zero timeout in modern browsers:
// setTimeout(fn, 0) has a minimum 4ms clamp in nested loops.
// Use MessageChannel or queueMicrotask for true 0ms execution:
function setZeroTimeout(callback) {
  const channel = new MessageChannel();
  channel.port1.onmessage = callback;
  channel.port2.postMessage(null);
}
setZeroTimeout(() => console.log('Immediate zero-timeout execution'));