Angular&可观察到的debounceTime

时间:2017-12-31 18:18:44

标签: angular rxjs observable debounce

在Angular 4项目中,我有一个可以被其他函数调用的函数(让它称之为reload())(让他们称之为A()和{{ 1}})随时。我想辩论B()的执行,直到从reload()A()的最后一次调用过去的X时间(即msecs)。我正在查看B()Rx.Observable.debounce函数,但我不明白他们是否真的可以帮助我。

一个例子:

Rx.Observable.debounceTime

1 个答案:

答案 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演示。