在Angular 4项目中,我有一个可以被其他函数调用的函数(让它称之为reload()
)(让他们称之为A()
和{{ 1}})随时。我想辩论B()
的执行,直到从reload()
或A()
的最后一次调用过去的X时间(即msecs)。我正在查看B()
和Rx.Observable.debounce
函数,但我不明白他们是否真的可以帮助我。
一个例子:
Rx.Observable.debounceTime
答案 0 :(得分:5)
您可以Subject
使用debounceTime
。所以有两个函数A
& B
向主题发送值。然后去抖动主题流,这样只有在x时间过后才会发出值。
// component.ts
subject$ = new Subject();
stream$;
constructor(){
this.stream$ = this.subject$.debounceTime(1000);
}
A(){
this.subject$.next('some value');
}
B(){
this.subject$.next('some value');
}
ngOnInit(){
this.stream$.subscribe(res => {
this.reload();
});
}
这是一个stack blitz演示。