rxjs里debounceTime operators的用法

291 阅读1分钟

Emits a value from the source Observable only after a particular time span has passed without another source emission.

一个很有用的限流operator.

const clicks = fromEvent(document, 'click');
    const result = clicks.pipe(debounceTime(1000));
    result.subscribe(x => console.log('diablo at most 1 second: ' + x));
    clicks.subscribe(x => console.log('diablo normal: ' + x));

测试结果:

在这里插入图片描述

无论我以多快的时间间隔点击鼠标,result Observable总是以大于等于1秒的时间间隔来emit value.

我写了一篇公众号文章:SAP UI5和Angular的函数防抖(Debounce)和函数节流(Throttle)实现原理介绍