setTimeout 函数调用延迟问题
尝试实现 5 秒轮询机制来更新 HTML 值时,用户可能会遇到意外行为其中 setTimeout() 函数被立即调用,而不是在预期的延迟之后调用。这可以阻止所需的交错服务器请求。
原因:
问题源于 setTimeout() 函数的调用方式不正确。
原创代码:
setTimeout(GetUsersNumber(), 50000);
解释:
在 JavaScript 中,函数可以定义为不带括号的对象。但是,要调用函数,后面必须跟括号。在原始代码中,函数 GetUsersNumber() 是在 setTimeout() 内部立即调用的,而不是作为函数引用传递。
解决方案:
到解决这个问题,只需删除 setTimeout() 参数中函数名称后面的括号:
setTimeout(GetUsersNumber, 5000); // 5 seconds instead of 50
这可以确保setTimeout() 捕获对 GetUsersNumber 函数对象本身的引用,允许它在延迟完成时调用该函数。
以上是为什么我的'setTimeout”函数立即执行而不是延迟后执行?的详细内容。更多信息请关注PHP中文网其他相关文章!