我有一阵中断进入处理程序,我不想在自上次中断后 5 毫秒后为它们提供服务,这表明中断已经结束。
我的想法是每次输入处理程序时调用 setTimeout(LookAtInterrupts, 5)
,但我在 setTimeout()
文档中没有看到它会如果在执行之前调用它,则取消挂起的预定调用。
事实上,这就是它的作用吗?我不想在每次处理程序中断后 5 毫秒被调用,只是最后一个。
最佳答案
不,它不会 - 您可以根据需要设置任意数量的未决超时。
该函数返回一个键,稍后您可以使用该键取消超时:
var key = setTimeout( ... );
然后稍后取消它:
clearTimeout(key);
使用已过期的 key 调用 clearTimeout()
不会出错,因此您不必担心同步问题。
关于javascript - setTimeout() 是否会自行重置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19145788/