如何传递去抖等待参数

时间:2018-10-26 10:13:51

标签: javascript lodash mobx

我正在使用 mobx 商店中的 lodash 库中的去抖动

setSettingsDebounced = debounce(flow(function* (which) {
    try {
      yield patchLightSettings(which);
    }
}.bind(this)), 200);

此方法的调用方式如下:

this.setSettingsDebounced('something');

这一切都很好,我的问题是:我应该如何传递 wait (当前已硬编码为 200 )参数进行反跳操作,所以仍然可以符合预期?

1 个答案:

答案 0 :(得分:1)

您可以像这样简单地包裹防抖:

const DELAY = 2000
const debounceWithParam = (fn, timeInMs) => _.debounce(fn, timeInMs)
const myFn = () => console.log('FOOOOO')

const myDebouncedFn = debounceWithParam(myFn, DELAY)

myDebouncedFn()
myDebouncedFn()

// Wait for one "FOOOOO" in the console :)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>

请注意,尽管我们确实两次调用了新函数,但只会显示一个FOOOOO

所以在您的情况下:

 setSettingsDebounced = debounceWithParam(setSettingsFn, DELAY);