Home >Web Front-end >JS Tutorial >Why Does My `setTimeout` Function Run Immediately?
Why Does setTimeout Run My Function Immediately?
When using setTimeout, you may encounter a scenario where the specified waiting time is ignored, causing the function to execute instantly. This behavior arises from a common misconception in the syntax used.
The Pitfall:
The code snippet below demonstrates the issue:
setTimeout(testfunction(), 2000);
The Explanation:
In the code, testfunction() is being invoked immediately using parentheses. This means that setTimeout is scheduled to wait for the result of testfunction(), which is executed instantaneously.
The Solution:
To ensure that setTimeout waits for the desired time before executing the function, use this syntax instead:
setTimeout(testFunction, 2000);
Note the absence of parentheses after testFunction. By omitting the parentheses, you pass the reference to the function itself, not the result of calling it.
The above is the detailed content of Why Does My `setTimeout` Function Run Immediately?. For more information, please follow other related articles on the PHP Chinese website!