主题上的 rxjs debounceTime

rxjs debounceTime on Subject

有一段代码是这样的:

const hoverQueue$ = new Rx.Subject()
    .debounceTime(1000)
    .subscribe(() => {
        console.log('subject')
});

const callback = () => {
    hoverQueue$.next(true)
}

这似乎不起作用。而不是让我的事件被延迟 1 秒并且只获得最后发出的值,它们都通过,就好像 debounceTime 不存在一样。同样的行为会延迟发生,似乎不起作用。 似乎在可观察对象上按预期工作。 callback 是我正在使用的另一个库调用的回调。

不确定我是否遗漏了什么或者我是否做了一些不应该做的事情,在网上找不到太多关于这个的信息。

下面有一个 fiddle 示例来演示

这里有一个 fiddle 和 rxjs 5.4.1,我 运行 https://jsfiddle.net/theya222/2nhu1ka7/

这里是最新版本的 rxjs https://jsfiddle.net/theya222/j1uLw80d/

谢谢

hoverQueue$ 是对 Observable 执行 subscribe 的结果。因此 hoverQueue$Subcription 而不是 Observable 并且 Subscription 没有方法 next.

你要做的就是这个

const subj = new Rx.Subject();
const hoverQueue$ = subj.debounceTime(1000);

hoverQueue$.subscribe(() => {
        console.log('subject')
});

const callback = () => {
    subj.next(true)
}

如果回调是

callback called by another library

拿 看一下用 Observable 定义的 bindCallback method/function。