【问题标题】:Fetch Data with interval in javascript?在javascript中以间隔获取数据?
【发布时间】:2021-01-02 10:01:23
【问题描述】:
我有以下带有 Pusher 的代码:
Echo.private("channel").listen(".foobar", (e) => {
this.fetchData();
});
当有传入请求时,我希望再次获取数据。但不是在每个 Pusher 事件中。我希望每 5 秒只获取一次数据。
我在想当有新的传入事件时重置一个间隔,但是如何实现呢?
【问题讨论】:
标签:
javascript
vue.js
pusher
pusher-js
【解决方案1】:
好的,首先它是一个Laravel Echo 代码。它可能在幕后使用了 pusher,但说它是 pusher 代码有点不正确。
那么,如果我没听错的话,你需要某种 debounce 功能。例如lodashoffers one。
const debouncedFunction = _.debounce(() => {
this.fetchData()
}, 5000);
Echo.private('channel').listen('.foobar', e => {
debounced()
})
debounce 将创建函数的去抖动版本,然后您可以调用它,甚至取消它,因为它带有 cancel 方法。
debouncedFunction.cancel()