【发布时间】:2018-10-31 21:31:16
【问题描述】:
我有一个用于发送消息的函数,它在一秒钟内被调用多次。 但是我想每秒调用一次该函数,并将该函数的其他调用延迟上一个调用的另外 1 秒。 这样只有该函数在后台运行并在一秒钟内调用一次,无论调用多少次,它都会将每次调用延迟到一秒。
例如:
function foo(a) {
console.log(a)
}
foo('one');
foo('two');
foo('three');
在上面的例子中, foo 在一秒钟内被调用了 3 次,但我希望它在 1 秒后被调用,它应该在 2 秒后返回“一”,它应该返回“秒”等等,它应该是异步。
我该怎么做?
我使用的技术是 Javascript。
谢谢
【问题讨论】:
-
JavaScript中有一个函数叫做
setTimeout() -
如果我将 setTimeout 中的函数包装为 1 秒,然后在一秒后它会同时调用所有函数,它不会延迟函数每秒运行一次
-
为什么不将设置的超时时间包装在一个函数中?
-
使用队列,并设置间隔。
-
对此的一个术语是“去抖动功能”。
标签: javascript