Timers specify when callbacks become eligible, not exact execution times. Busy event-loop work can delay their execution.
Before you start
You should know JavaScript promises, asynchronous errors and the distinction between a process and a request. When following a server example, identify the resource owner and the point where work completes. Try experiments locally with bounded input instead of assuming production traffic behaves like a single request.
The practical goal is to reason through this situation: A nominal one-second interval can fire late during a CPU-heavy operation. Read the walkthrough first, then try the interview exercise before opening its answer. The important part is explaining the decision and its consequences, rather than remembering a definition alone.
Step-by-step walkthrough
Step 1: Record the real deadline
Use a clock-based start and duration instead of treating each timer callback as exactly one elapsed second.
Step 2: Expect scheduling delay
A busy event loop can execute a callback later than requested. Timer eligibility is not exact execution.
Step 3: Recompute remaining time
Subtract current time from the deadline on each refresh and clamp the result at zero.
Worked scenario
A nominal one-second interval can fire late during a CPU-heavy operation.
A ten-second display starts with a fixed deadline. After a three-second event-loop stall, the next tick recomputes the remaining duration rather than subtracting only one. For elapsed durations, choose a suitable monotonic clock; wall-clock changes can affect deadline calculations based on calendar time.
Common mistake
Counting interval callbacks does not reliably measure elapsed time.
Verify the behavior
Delay callbacks intentionally and compare displayed time with actual elapsed time. Test completion after a long stall.
Interview exercise
Build an accurate timeout display.
Answer and reasoning
Compare against a clock-based deadline and account for delayed callbacks instead of assuming exact periodic execution.
Continue learning
Compare the scenario with the Node.js interview questions and test your understanding with the Node.js MCQs. For terminology and implementation details, consult the reference material.