首页 > web前端 > js教程 > 正文

为什么我的'setTimeout”函数立即执行而不是延迟后执行?

Mary-Kate Olsen
发布: 2024-11-15 17:04:02
原创
598 人浏览过

Why is my `setTimeout` function being executed immediately instead of after the delay?

为什么 setTimeout 调度的函数会立即执行

在这种情况下,一个函数本打算使用 setTimeout 延迟执行,但却立即执行,问题在于如何将函数传递给 setTimeout。

要解决此问题,可以通过三种方法来确保它以所需的延迟执行:

  1. 单独传递参数:

    setTimeout(doRequest, proxytimeout, url, proxys[proxy]);
    登录后复制

    这种形式首先传递函数,然后是超时和函数的

  2. 使用文字字符串:

    setTimeout('doRequest('+url+','+proxys[proxy]+')', proxytimeout);
    登录后复制

    这里提供了一个文字字符串,它将在执行时进行评估。

  3. 匿名函数闭包:

    (function(u, p, t) {
        setTimeout(function() { doRequest(u, p); }, t);
    })(url, proxys[proxy], proxytimeout);
    登录后复制

    此方法涉及调用预期函数的匿名函数。闭包确保函数中使用的值在整个循环中保持一致。

通过采用这些方法中的任何一个,您可以有效地安排 doRequest 函数以指定的延迟执行。

以上是为什么我的'setTimeout”函数立即执行而不是延迟后执行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板