小编Chr*_*ris的帖子

使用promises实现的去抖功能

我正在尝试实现一个与javascript中的promise一起使用的去抖函数.这样,每个调用者都可以使用Promise消耗"debounced"函数的结果.这是迄今为止我能够提出的最好的:

function debounce(inner, ms = 0) {
  let timer = null;
  let promise = null;
  const events = new EventEmitter();  // do I really need this?

  return function (...args) {
    if (timer == null) {
      promise = new Promise(resolve => {
        events.once('done', resolve);
      });
    } else {
      clearTimeout(timer);
    }

    timer = setTimeout(() => {
      events.emit('done', inner(...args));
      timer = null;
    }, ms);

    return promise;
  };
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想实现这个实用程序函数而不引入依赖于EventEmitter(或实现我自己的基本版本的EventEmitter),但我想不出办法.有什么想法吗?

javascript promise

16
推荐指数
4
解决办法
1万
查看次数

反应虚拟化的粘性标题

List在react-virtualized中使用一个组件来渲染大量项目.在我的实现中,项目是分段的,我希望部分标题是粘性的,以便当用户向下滚动时当前部分保持可见.从本质上讲,我需要react-virtualized NOT来销毁部分标题,因为滚动位置会发生变化(但会继续破坏其他项目).现在有办法做到这一点吗?只要他们不是太疯狂,我就会对黑客持开放态度.

reactjs react-virtualized

6
推荐指数
2
解决办法
4611
查看次数

标签 统计

javascript ×1

promise ×1

react-virtualized ×1

reactjs ×1