2.3.0 • Published 5 years ago
binary-throttle v2.3.0
BT(binary-throttle)
双函数约束节流 😏
安装
yarn add binary-throttle
使用
import { BT } from "binary-throttle";
function forward() {
// @TODO
}
function backward() {
// @TODO
}
const [X, Y] = BT(forward, backward, {
// idleness: 1000,
// fallbackF: () => console.log('X was ignore this time.'),
// fallbackB: () => console.log('Y was ignore this time.')
});
背景
假设存在A/B函数相互关联,A函数每次一次正向操作,B函数必然会执行一次反向操作,A/B函数保证相关抵消。 那么考虑以下场景:
ABABABABABABABABABABABABABABABABABAB
A/B函数高频率触发,但是最终效果都是抵消的,此时如果基于用户交互优化,以及节约性能的考虑,可以进行约束节流。 不改变最终的效果,但是可以减少触发次数。优化可能如下:
A----------B----------A------------B
技术方案
通过计数器以及定时器,以及高阶函数,以及标识参数,将原有A/B函数包裹,实现根据参数值(限制原始类型)进行约束节流的功能。
效果如下(运行npm test
)