settimeout不起作用(Node.js setTimeout在while循环中不起作用)
本文目录
- Node.js setTimeout在while循环中不起作用
- cisco路由器exec time-out设置的时间不起作用
- js做倒计时,每点击一次就会重新一次的倒计时,disabled的属性设置不起作用,求大神帮我找找问题
- javascript条件设置a=0时不起效
- settimeout的参数不起作用
Node.js setTimeout在while循环中不起作用
当setTimeout被调用时,它会在指定的时间后将回调函数添加到事件循环队列中。在while循环中,由于代码在循环中被同步执行,事件循环被阻塞,因此setTimeout中指定的回调函数不会被添加到事件循环队列中,直到循环结束。这意味着,如果在while循环中使用setTimeout,则所有的回调函数都会在循环结束后立即执行,而不是在指定的时间后执行。为了解决这个问题,可以考虑使用setInterval或者递归函数来代替setTimeout,或者将setTimeout放在异步函数中执行,以确保回调函数被添加到事件循环队列中。例如:function doSomething() { // do something... setTimeout(function() { // do something after 1000ms... }, 1000);}// 异步函数中执行 setTimeoutasync function doSomethingAsync() { // do something... await new Promise(resolve =》 setTimeout(resolve, 1000)); // do something after 1000ms...}
cisco路由器exec time-out设置的时间不起作用
首先vty是远程telnet使用的 默认的情况下不配置time-out时间也没有问题 因为cisco默认就配了time-out时间 具体是多长时间记不清了还有 如果想远程 必须配置vtp密码 如果不配置 cisco就会拒绝telnet 也就是Password required,but none set解决方法 在全局配置模式下输入命令 line vty 0 4 输入password XXXX(XXX为密码 自己配置)回车然后输入login 回车 注意login此条必须输入 否则不生效 切记
js做倒计时,每点击一次就会重新一次的倒计时,disabled的属性设置不起作用,求大神帮我找找问题
《p class="register_yan" id="btn"》获取验证码《/p》《script》 var wait = 30; var timer = null; function time(o) { if (wait == 0) { clearTimeout(timer); timer = null; wait = 30; o.text("获取验证码"); } else { o.text("重新发送(" + (wait--) + ")"); timer = setTimeout(function() { time(o); }, 1000); } } $(function() { $("#btn").click(function() { if (timer) { return; } time($(this)); }); });《/script》
javascript条件设置a=0时不起效
在Javascript里,setTimeout和setInterval接收第一个参数是一个字符串或者一个函数,当在一个对象里面用setTimeout延时调用该对象的方法时 复制代码 代码如下:function obj() { this.fn = function() { alert("ok"); console.log(this); setTimeout(this.fn, 1000);//直接使用this引用当前对象 } } var o = new obj(); o.fn();然后我们发现上面的代码不是想要的结果,原因是setTimeout里面的this是指向window,所以要调用的函数变成 window.fn 为undefined,于是悲剧了。所以问题的关键在于得到当前对象的引用,于是有以下三种方法 复制代码 代码如下:// 方法一:function obj() { this.fn = function() { alert("ok"); console.log(this); setTimeout(this.fn.bind(this), 1000);//通过Function.prototype.bind 绑定当前对象 } } var o = new obj(); o.fn();这样可以得到正确的结果,可惜Function.prototype.bind方法是ES5新增的标准,测试了IE系列发现IE6-8都不支持,只有IE9+可以使用。要想兼容就得简单的模拟下bind,看下面的代码 复制代码 代码如下:// 方法二: function obj() { this.fn = function() { alert("ok"); setTimeout((function(a,b){ return function(){ b.call(a); } })(this,this.fn), 1000);//模拟Function.prototype.bind } } var o = new obj(); o.fn();首先通过一个自执行匿名函数传当前对象和对象方法进去,也就是里面的参数a和b,再返回一个闭包,通过call方法使this指向正确。下面是比较简洁的方法 复制代码 代码如下:// 方法三: function obj() { this.fn = function() { var that = this;//保存当前对象this alert("ok"); setTimeout(function(){ that.fn(); }, 1000);//通过闭包得到当前作用域,好访问保存好的对象that } } var o = new obj(); o.fn();上面第三个方法的两个关键点是 保存当前对象this为别名that 和 通过闭包得到当前作用域,以访问保存好的对象that;当对象方法里面多层嵌套函数或者setTimeout,setInterval等方法丢失this(也就是this不指向当前对象而是window),所以在this指向正确的作用域保存var that = this就变得很实用了
settimeout的参数不起作用
因为seTimeout第一个参数要求一个函数,而不是一个字符串,所以要写入下面程序:《!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ***隐藏网址******隐藏网址***《head》***隐藏网址***《title》无标题文档《/title》《script type="text/javascript"》var cir_str="沙国之春归宿";var i_cir_str_length=cir_str.length;var str_in_html="";function circle_text(){for(var i=0;i《i_cir_str_length;i++)str_in_html=str_in_html+"《div id=’cir_text_div"+i+"’style=’width:3;font-family: Courier New;font-weight:bold;position:absolute;top:40;left:50;z-index:0’》"+cir_str.charAt(i)+"《/div》";document.write(str_in_html);text_round();}var alpha=5;var i_alpha=0.05;var Timer;function text_round(){alert(str_in_html);alpha=alpha-i_alpha;alert(alpha);for(var i=0;i《i_cir_str_length;i++){var alpha1=alpha+0.5*i;var v_cos=Math.cos(alpha1);var div_id="cir_text_div"+i;var obj=document.getElementById(div_id);obj.style.left=100+100*Math.sin(alpha1)+50;obj.style.zIndex=20*v_cos;obj.style.fontSize=40+25*v_cos;obj.style.color="rgb("+ (27+v_cos*80+50) + ","+ (127+v_cos*80+50) + ",0)";}if(true){alert("ssss");}Timer=setTimeout(text_round(),1000);//移到外边来}《/script》《/head》《body onload="circle_text()"》《/body》《/html》 还有,别用document.write吧,你可以改成下面这样:***隐藏网址******隐藏网址***《head》***隐藏网址***《title》无标题文档《/title》《script type="text/javascript"》var cir_str="沙国之春归宿";var i_cir_str_length=cir_str.length;var str_in_html="";function circle_text() {for(var i=0;i《i_cir_str_length;i++)str_in_html=str_in_html+"《div id=’cir_text_div"+i+"’style=’width:3;font-family: Courier New;font-weight:bold;position:absolute;top:40;left:50;z-index:0’》"+cir_str.charAt(i)+"《/div》";document.getElementById("divTest").innerHTML = str_in_html;text_round();}var alpha=5;var i_alpha=0.05;var Timer;function text_round(){alpha=alpha-i_alpha;for(var i=0;i《i_cir_str_length;i++){var alpha1=alpha+0.5*i;var v_cos=Math.cos(alpha1);var div_id="cir_text_div"+i;var obj=document.getElementById(div_id);obj.style.left=100+100*Math.sin(alpha1)+50;obj.style.zIndex=20*v_cos;obj.style.fontSize=40+25*v_cos;obj.style.color="rgb("+ (27+v_cos*80+50) + ","+ (127+v_cos*80+50) + ",0)";}setTimeout("text_round();", 1500);}《/script》《/head》《body onload="circle_text()"》《div id="divTest"》《/div》《/body》《/html》
更多文章:
thinkpadt500(ThinkPadT500最高CPU支持)
2024年7月28日 00:03
amd radeon r9 m290x(AMD Radeon R9 M290X显卡)
2024年7月26日 19:10