|
|
1
25
如果无法修改库代码,则需要重新定义setTimeout以满足您的目的。下面是您可以做的一个示例:
这不是生产代码,但应该让您走上正确的道路。注意,每次超时只能绑定一个侦听器。我没有用这个做过广泛的测试,但是它在Firebug中有效。 一个更健壮的解决方案将使用包装setTimeout的相同技术,但是使用从返回的timeoutid到监听器的映射来处理每个超时的多个监听器。您还可以考虑包装ClearTimeout,以便在超时被清除时分离侦听器。 |
|
|
2
49
对于记录,有一种方法可以在node.js中获取剩余时间:
印刷品:
这在firefox中似乎不起作用,但由于node.js是javascript,我认为这句话可能对寻找节点解决方案的人有所帮助。 |
|
|
3
45
编辑:我真的认为我做的更好: https://stackoverflow.com/a/36389263/2378102 我编写了这个函数,并经常使用它:
制作计时器:
因此,如果您想要剩余时间,只需执行以下操作:
|
|
|
4
3
Javascript的事件堆栈无法按照您的想法进行操作。 创建超时事件时,会将其添加到事件队列中,但在激发该事件时,其他事件可能具有优先级,会延迟执行时间并推迟运行时。 例子: 您可以创建一个延迟10秒的超时来向屏幕发出警报。它将被添加到事件堆栈中,并在所有当前事件被激发(导致一些延迟)后执行。然后,当处理超时时,浏览器仍然继续捕获其他事件,将它们添加到堆栈中,这将导致处理过程中的进一步延迟。如果用户单击,或者进行大量的ctrl+键入,那么他们的事件将优先于当前堆栈。你的10秒可以变成15秒,或者更长。 也就是说,有很多方法可以伪造时间已经过去了。一种方法是在将setTimeout添加到堆栈之后立即执行setInterval。 例子: 以10秒的延迟执行设置超时(将该延迟存储在全局中)。然后执行每秒运行一次的设置间隔,从延迟中减去1,并输出剩余的延迟。由于事件堆栈如何影响实际时间(如上所述),这仍然不准确,但会给出一个计数。 简而言之,没有真正的方法来获得剩余的时间。只有几种方法可以尝试向用户传递评估。 |
|
|
5
3
这可能是一种更好的方法,而且,您不需要更改已经编写的代码:
…并模仿:
|
|
|
6
2
服务器端node.js特定 以上这些都不适用于我,在检查超时对象之后,它看起来像是与进程启动时相关的一切。以下内容对我很有用:
输出:
为简洁起见,编辑了输出,但这个基本函数给出了执行前或执行后的大致时间。正如其他人提到的,这些都不会是由于节点处理的方式,但是如果我想禁止一个运行不到1分钟的请求,并且我存储了计时器,我不明白为什么这不能作为一个快速检查工作。使用RefreshTimer在10.2+中处理对象可能很有趣。 |
|
|
7
0
不,但是您可以在函数中为动画设置自己的setTimeout/setInterval。 说你的问题是这样的:
您的动画将由以下两个功能处理:
|
|
|
8
0
如果有人回头看这个。我提出了一个超时和间隔管理器,可以让你在一个超时或间隔时间,以及做一些其他的事情。我会加上一点,使它更漂亮、更准确,但它似乎也相当有效(尽管我有更多的想法使它更准确): |
|
|
9
0
这个问题已经回答了,但我要补充一下。我刚想到。
使用
我想代码是不言而喻的 |
|
|
10
0
检查这个:
制作计时器:
获得保留:
清除超时
|
|
|
11
0
|
|
|
12
0
我在这里停下来寻找这个答案,但我想得太多了。如果你在这里是因为你只需要在设定时间的过程中跟踪时间,这里有另一种方法:
|
|
|
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 1 年前 |
|
|
Alex · 在轻量级中同时解构和不解构变量 1 年前 |
|
|
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 1 年前 |
|
|
bairog · 从按属性筛选的对象数组字典中创建值数组 1 年前 |
|
|
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 1 年前 |