在任意一个监听里,比如以下的uni.$on,
从收到消息开始,计算5秒内还有没有新的消息返回,如果5秒后还没有消息返回,那就结束这个计算,
从下一次收到消息再开始
uni.$on('getData', (obj) => {
})
小弟在这里先感谢各位大神们,感激不尽,祝大神们发财祝大神们取漂亮老婆
在任意一个监听里,比如以下的uni.$on,
从收到消息开始,计算5秒内还有没有新的消息返回,如果5秒后还没有消息返回,那就结束这个计算,
从下一次收到消息再开始
uni.$on('getData', (obj) => {
})
小弟在这里先感谢各位大神们,感激不尽,祝大神们发财祝大神们取漂亮老婆
在监听回调函数内部,可以使用setTimeout
函数来设置一个定时器,在5秒后执行某个操作,例如结束计算。同时,可以在每次收到消息时,先取消之前设置的定时器,再重新设置一个新的定时器。以下是示例代码:
let timer = null;
uni.$on('getData', (obj) => {
clearTimeout(timer); // 取消之前设置的定时器
timer = setTimeout(() => {
// 在5秒后执行某个操作,例如结束计算
console.log('5秒内没有新的消息返回');
}, 5000);
});
以上代码在收到消息后,会取消之前设置的定时器,并重新设置一个新的定时器,5秒后触发定时器回调函数,执行某个操作(这里只是简单地打印一条消息)。如果在5秒内又收到了新的消息,则会重新执行设置定时器的操作。
就是一个时间长一点的防抖
let time = 5000;
let obj = null;
const heart = () => {
clearTimeout(obj)
obj = setTimeout(() => {
// ... 一些结束逻辑
}, time)
}
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
好家伙,这又不是啥很难或者不常见的问题,直接问ai呗
