草庐IT

settimeout

全部标签

javascript - 在 Node.js 事件循环中获取(事件)计时器的计数

有没有办法在Node.js中调用以确定事件循环队列中的计时器数量?我有一个带有多个超时的库,而不是使用某种内部簿记系统自己跟踪它们,如果我可以只问V8或Libuv或其他什么,有多少个计时器,那就太好了。这可能吗? 最佳答案 itwouldbeniceifIcouldjustaskV8orLibuvorwhatever您不能直接询问libuv,但它确实提供了一种了解有多少事件计时器的方法。为此,您可以调用uv_walk使用有效循环获取所有事件句柄。然后,您可以使用给定的回调检查每个句柄,并计算数据成员type(类型为uv_handle

javascript - 使用箭头键和智能延迟加载实现有机列表浏览

简单场景我有一个列表,我实现了使用箭头键(向上、向下)进行浏览,并且在当前列表项的每次更改时,都会通过AJAX加载一个数据库对象。甜蜜的。问题当用户快速浏览列表时,我不希望每个请求都关闭。但当然,最初的请求应该立即关闭。我的想法是使用变量作为延迟来设置超时,并在项目初始加载后增加该变量。这行得通,但是当用户暂时停止浏览但随后继续浏览时,我仍然不希望每个请求都关闭。所以我想,延迟变量必须随着每次浏览事件而合理增加,直到达到阈值。这种有机的方法将成功地减少不必要的元素加载量。我的解决方案我来得很远。这段代码(下面的解释)将完成这项工作,有一个主要罪魁祸首:第一次浏览完成然后停止后,延迟将自

javascript - 在 setTimeout 中调用的函数不使用当前的 React 状态

快速总结我正在尝试创建一个按钮,它既有常规点击功能,又有用户点击并按住它时发生的单独操作,类似于Chrome中的后退按钮。我这样做的方式涉及一个setTimeout()和一个检查状态的回调。出于某种原因,回调正在使用调用setTimeout()时的状态,而不是调用回调时的状态(1秒后)。您可以在codesandbox上查看我是如何努力实现这一目标的为了获得此功能,我在MouseDown上调用setTimeOut()。我还将处于状态的isHolding设置为true。onMouseUp我将isHolding设置为false并且还运行clickHandler(),这是一个Prop,如果ho

javascript - 当窗口失去焦点时 Settimeout 不起作用

我有一个简单的JavaScript计时码表,显示在名为“d2”的表单字段上,它用于检查某人完成特定任务需要多长时间:varmilisec=0varseconds=0varcomplemento1=""document.form1.d2.value='00:00:00'functiondisplay(){if(milisec>=9){milisec=0seconds+=1}else{milisec+=1}complemento1=complemento2=complemento3="";if((seconds%60)问题是,当用户打开新标签页/使用另一个程序时,计时器停止,然后在窗口再次

javascript - 如何替换事件页面扩展中的短(不到一分钟)setTimeouts

documentation关于从后台持久扩展到非持久事件页面的转换,状态:Ifyourextensionuseswindow.setTimeout()orwindow.setInterval(),switchtousingthealarmsAPIinstead.DOM-basedtimerswon'tbehonorediftheeventpageshutsdown.很公平,但是警报APIdocumentation状态:whencanbesettolessthan1minuteafter"now"withoutwarningbutwon'tactuallycausethealarmtof

javascript - 为什么当我的站点打开多个选项卡时我的 setTimeout 会加快?

我有一个每秒倒计时的计时器。在用户打开“我的网站”的3或4个选项卡之前,它一直有效,此时最新选项卡的计时器会以两倍或三倍的速度运行。我目前只能在IE8中重现该错误。我之前使用的是setInterval,并且也可以在Firefox中重现该错误。我实际上使用的是FBJS(Facebook的Javascript),所以我只给出一些伪代码。functioncountDown(){...setTimeout(function(){countDown()},1000);}countDown();但是,我真正想要的是更具理论性的内容。我知道浏览器可以尝试使用setInterval进行“追赶”,但多个

javascript - 具有可变延迟和等待的 Angular 4 setTimeout()

我有一个带有timestamp的事件列表。我想要的是根据timestamp显示事件:添加延迟:delay=timestamp(t+1)-timstamp(t)我知道这不适用于setTimeout,但有一个解决方法,如果超时是恒定的,在我的情况下不是。是否可以让下一个setTimeout()等待上一个?具体来说,如果第一个setTimeout()有5秒的延迟,第二个有3秒,那么第二个会先出现。我希望它们按相同的顺序执行,但一个接一个地执行。此示例适用于恒定延迟,但我想根据迭代列表所获取的信息来计算延迟。for(i=1;i 最佳答案 您

javascript - 为什么复制功能在 setTimeout 中不起作用?

当我尝试在setTimeout中copy时,Chrome会报错。setTimeout(function(){copy('a')},0)UncaughtReferenceError:copyisnotdefinedat:1:26它也不适用于window范围。setTimeout(function(){window.copy('a')},0)UncaughtTypeError:window.copyisnotafunction有趣的是,如果我保留对copy的引用并重新使用它,它就可以工作cc=copy;setTimeout(function(){cc('a')},0);在Firefox中,

javascript - Angular2 setTimeout 返回 ZoneTask 而不是 "Number"

尝试在angular2中使用setTimeout,我想稍后清除超时。但是Angular2返回的是“ZoneTask”而不是数字constructor(){this.name='Angular2'this.timeoutId=setTimeout(()=>{console.log('hello');},2000);console.log("timeoutID---",this.timeoutId);//Output-ZoneTask{_zone:Zone,runCount:0,_zoneDelegates:Array[1],_state:"scheduled",type:"macroTa

javascript - 为什么将函数参数作为字符串或引用传递时 `this` 会发生变化?

看看这个:vara={b:function(){console.log(this);}}//Example1a.b();//a//Example2eval('a.b()');//a//Example3setTimeout('a.b()',100);//a//Example4setTimeout(a.b,100);//Window//Example5varc=a.b;c();//WindowjsFiddle.假设预期结果是我预期的...示例1当调用b()时,Object的属性,this成为属性的Object,这里它是父a。它产生了预期的结果。例子2eval()旨在采用其调用位置的执行上下