Bird
Raised Fist0
Node.jsframework~5 mins

setTimeout and clearTimeout in Node.js - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What does setTimeout do in Node.js?

setTimeout schedules a function to run once after a specified delay in milliseconds.

Click to reveal answer
beginner
How do you stop a scheduled setTimeout before it runs?

You use clearTimeout with the timer ID returned by setTimeout to cancel the scheduled function.

Click to reveal answer
intermediate
What type of value does setTimeout return in Node.js?

It returns a Timeout object that represents the timer. This object is used to clear the timer if needed.

Click to reveal answer
intermediate
Why might you want to use clearTimeout in your code?

To prevent a scheduled function from running if the condition changes or the task is no longer needed, saving resources and avoiding unwanted actions.

Click to reveal answer
advanced
What happens if you call clearTimeout with an invalid or already cleared timer ID?

Nothing happens; clearTimeout safely ignores invalid or already cleared timers without errors.

Click to reveal answer
What does setTimeout(() => console.log('Hi'), 1000) do?
APrints 'Hi' after 1 second
BNever prints 'Hi'
CPrints 'Hi' every second
DPrints 'Hi' immediately
Which function cancels a scheduled setTimeout?
AremoveTimeout()
BcancelTimeout()
CstopTimeout()
DclearTimeout()
What do you need to keep to cancel a timeout later?
AThe function passed to <code>setTimeout</code>
BThe timer ID returned by <code>setTimeout</code>
CThe delay time in milliseconds
DNothing, you cannot cancel a timeout
If you call clearTimeout twice on the same timer ID, what happens?
AThe timer is cleared once, second call does nothing
BAn error is thrown
CThe timer restarts
DThe timer runs immediately
Which of these is true about setTimeout in Node.js?
AIt runs the function repeatedly every delay interval
BIt blocks the program until the function runs
CIt schedules a function to run asynchronously after a delay
DIt immediately runs the function and ignores the delay
Explain how you would use setTimeout and clearTimeout together in a Node.js program.
Think about scheduling a task and then stopping it if needed.
You got /4 concepts.
    Describe what happens if you do not call clearTimeout on a timer you no longer need.
    Consider what happens if a delayed task runs unexpectedly.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the setTimeout function do in Node.js?
      easy
      A. Stops a running function immediately
      B. Runs a function repeatedly at fixed intervals
      C. Schedules a function to run only when the program ends
      D. Runs a function once after a specified delay

      Solution

      1. Step 1: Understand setTimeout purpose

        setTimeout schedules a function to run once after a delay in milliseconds.
      2. Step 2: Compare options with definition

        Only Runs a function once after a specified delay matches this behavior. Runs a function repeatedly at fixed intervals describes setInterval, the option about stopping a running function immediately is incorrect, and the option about scheduling when the program ends is incorrect.
      3. Final Answer:

        Runs a function once after a specified delay -> Option D
      4. Quick Check:

        setTimeout = run once after delay [OK]
      Hint: Remember: setTimeout runs once after delay [OK]
      Common Mistakes:
      • Confusing setTimeout with setInterval
      • Thinking setTimeout repeats automatically
      • Believing setTimeout stops functions
      2. Which of the following is the correct syntax to cancel a timeout set by setTimeout?
      easy
      A. stopTimeout(timeoutId);
      B. cancelTimeout(timeoutId);
      C. clearTimeout(timeoutId);
      D. clearInterval(timeoutId);

      Solution

      1. Step 1: Recall the function to cancel setTimeout

        The correct function to cancel a timeout is clearTimeout with the timeout ID.
      2. Step 2: Check each option's validity

        Only clearTimeout(timeoutId); uses the correct function name. cancelTimeout and stopTimeout do not exist. clearInterval(timeoutId); is for intervals, not timeouts.
      3. Final Answer:

        clearTimeout(timeoutId); -> Option C
      4. Quick Check:

        Cancel timeout = clearTimeout [OK]
      Hint: Use clearTimeout with the ID from setTimeout [OK]
      Common Mistakes:
      • Using clearInterval to cancel setTimeout
      • Using non-existent functions like cancelTimeout
      • Not passing the timeout ID to clearTimeout
      3. What will be the output of the following code?
      const id = setTimeout(() => console.log('Hello'), 1000);
      clearTimeout(id);
      console.log('Done');
      medium
      A. Done
      B. Hello\nDone
      C. Hello
      D. No output

      Solution

      1. Step 1: Analyze setTimeout and clearTimeout usage

        The timeout is set to print 'Hello' after 1 second, but immediately cleared with clearTimeout(id).
      2. Step 2: Determine what prints immediately

        The console.log('Done') runs immediately, so only 'Done' is printed.
      3. Final Answer:

        Done -> Option A
      4. Quick Check:

        clearTimeout cancels delayed output [OK]
      Hint: clearTimeout stops delayed code; immediate logs still run [OK]
      Common Mistakes:
      • Expecting 'Hello' to print after clearTimeout
      • Thinking both 'Hello' and 'Done' print
      • Confusing order of console logs
      4. Identify the error in this code snippet:
      const timer = setTimeout(() => console.log('Run'), 2000);
      clearTimeout(timer);
      clearTimeout(timer);
      medium
      A. No error; calling clearTimeout multiple times is safe
      B. setTimeout callback will still run despite clearTimeout
      C. Missing parentheses in clearTimeout calls
      D. Calling clearTimeout twice causes an error

      Solution

      1. Step 1: Understand clearTimeout behavior

        Calling clearTimeout multiple times on the same ID does not cause errors; it safely ignores subsequent calls.
      2. Step 2: Check syntax and callback execution

        Syntax is correct, and the callback will not run because the timeout was cleared.
      3. Final Answer:

        No error; calling clearTimeout multiple times is safe -> Option A
      4. Quick Check:

        Multiple clearTimeout calls are safe [OK]
      Hint: clearTimeout can be called repeatedly without error [OK]
      Common Mistakes:
      • Thinking multiple clearTimeout calls cause errors
      • Believing callback runs after clearTimeout
      • Confusing syntax with missing parentheses
      5. You want to print "Start", then after 2 seconds print "Middle", but if a user clicks a button before 2 seconds, cancel "Middle" and print "Cancelled" immediately. Which code snippet correctly implements this behavior? Options: A)
      console.log('Start');
      const id = setTimeout(() => console.log('Middle'), 2000);
      button.onclick = () => {
        clearTimeout(id);
        console.log('Cancelled');
      };
      B)
      console.log('Start');
      setTimeout(() => console.log('Middle'), 2000);
      button.onclick = () => {
        clearTimeout();
        console.log('Cancelled');
      };
      C)
      console.log('Start');
      const id = setTimeout(() => console.log('Middle'), 2000);
      button.onclick = () => {
        console.log('Cancelled');
        clearTimeout();
      };
      D)
      console.log('Start');
      const id = setTimeout(() => console.log('Middle'), 2000);
      button.onclick = () => {
        clearInterval(id);
        console.log('Cancelled');
      };
      hard
      A. clearTimeout called without ID, so timeout not canceled
      B. Correctly cancels timeout and prints Cancelled on click
      C. Prints Cancelled then calls clearTimeout without ID, so timeout not canceled
      D. Uses clearInterval instead of clearTimeout, so fails

      Solution

      1. Step 1: Check timeout setup and cancellation

        Correctly cancels timeout and prints Cancelled on click, which stores the timeout ID and uses it in clearTimeout inside the click handler, correctly canceling the delayed print.
      2. Step 2: Verify order of console logs and function calls

        Correctly cancels timeout and prints Cancelled on click prints 'Start' immediately, then 'Cancelled' if clicked before 2 seconds, preventing 'Middle' from printing.
      3. Step 3: Analyze other options for errors

        The second option does not store the timeout ID and calls clearTimeout() without an argument (no effect). The third option stores the ID but calls clearTimeout() without passing the ID (no effect). The fourth option uses clearInterval(id), which cannot cancel a timeout.
      4. Final Answer:

        Correctly cancels timeout and prints Cancelled on click -> Option B
      5. Quick Check:

        Use clearTimeout with stored ID to cancel delayed action [OK]
      Hint: Store timeout ID and clearTimeout with it on event [OK]
      Common Mistakes:
      • Not passing timeout ID to clearTimeout
      • Using clearInterval instead of clearTimeout
      • Calling clearTimeout without arguments