栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么我的应由setTimeout安排的函数调用立即执行?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么我的应由setTimeout安排的函数调用立即执行?

以这种形式将函数提供给setTimeout时,将执行该函数,而不是将其传递给setTimeout。您有三种选择可以使其正常工作:

首先给出函数,然后给出超时和参数作为最后一个参数:

setTimeout(doRequest, proxytimeout, url, proxys[proxy]);

或者只是写一个将被求值的字符串:

setTimeout('doRequest('+url+','+proxys[proxy]+')', proxytimeout);

第三种样式是传递一个调用该函数的匿名函数。请注意,在这种情况下,您必须在封闭状态下执行此操作,以防止值在循环中更改,因此它会有些棘手:

(function(u, p, t) {    setTimeout(function() { doRequest(u, p); }, t);})(url, proxys[proxy], proxytimeout);

第二种格式有点怪异,但如果参数是标量值(字符串,整数等),则仍然可以使用。第三种格式有点不清楚,因此在这种情况下,第一种选择显然将最适合您。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/387911.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号