有一段这样的代码:
const hoverQueue$ = new Rx.Subject()
.debounceTime(1000)
.subscribe(() => {
console.log('subject')
});
const callback = () => {
hoverQueue$.next(true)
}
似乎不起作用。而不是让我的事件延迟1秒并仅获取发出的最后一个值,它们都像debounceTime不存在一样通过了。相同的行为会延迟发生,似乎不起作用。 似乎可以在可观察对象上正常工作。 callback是我正在使用的另一个库调用的回调。
不确定我是否错过了某件事,或者我在做不应该做的事情,所以在网上找不到很多东西。
下面有个小提琴和一个例子来演示
这是rxjs 5.4.1的小提琴,即时通讯正在运行 https://jsfiddle.net/theya222/2nhu1ka7/
这是最新版本的rxjs的一个 https://jsfiddle.net/theya222/j1uLw80d/
谢谢
答案 0 :(得分:1)
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)
}
如果回调是
由另一个库调用的回调
服用
看看用Observable定义的bindCallback
方法/函数。