throttle
创建一个节流回调函数
基本用法
Throttle接受一个带有interval和源函数的选项对象。当返回的函数被调用时,只有在经过interval毫秒后才会调用源函数。否则,它将忽略这次调用。
import { throttle } from 'radash'
const onMouseMove = () => {
rerender()
}
addEventListener('mousemove', throttle({ interval: 200 }, onMouseMove))
时序
当interval为200时节流行为的可视化表示。由throttle返回的函数可以每毫秒调用一次,但它只会在经过interval毫秒后调用给定的回调。
时间: 0ms - - - - 100ms - - - - 200ms - - - - 300ms - - - - 400ms - - - -
节流函数调用: x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x - - -
源函数调用: x - - - - - - - - - - - - x - - - - - - - - - - - - - x - - - - - -
是否节流中
由throttle返回的函数有一个isThrottled方法,调用该方法将返回是否有活跃的节流状态。
const debounced = throttle({ interval: 200 }, onMouseMove)
// ... 稍后
debounced.isThrottled()
相关内容
- alphabetical 按属性对对象数组进行字母顺序排序 给定一个对象数组和一个用于确定排序属性的回调函数,返回一个按字母顺序排序的新数组
- boil 将列表项缩减为一个项 给定一个项数组,返回在比较条件中获胜的最终项
- cluster 将列表拆分为指定大小的多个列表 给定一个项数组和所需的集群大小(`n`),返回一个数组的数组
- counting 创建一个包含项目出现次数的对象 给定一个对象数组和一个用于确定每个对象应如何标识的标识回调函数
- diff 创建两个数组之间的差异数组 给定两个数组,返回第一个数组中存在但第二个数组中不存在的所有项的数组
- first 获取列表中的第一个项 给定一个项数组,返回第一个项,如果不存在任何项则返回默认值