gpt4 book ai didi

Angular 和 Observable debounceTime

转载 作者:行者123 更新时间:2023-12-01 22:26:41 24 4
gpt4 key购买 nike

在 Angular 4 项目中,我有一个函数(我们称之为 reload()),它可以被其他函数调用(我们称之为 A() )并且B()) 随时。我想对 reload() 的执行进行反跳,直到从最后一次调用 A()B()< 过去 X 时间(即毫秒)/。我正在查看 Rx.Observable.debounce 和 Rx.Observable.debounceTime 函数,但我不明白它们是否真的可以帮助我。

一个例子:

time 0ms: A() gets executed and it calls reload()
time 200ms: B() calls executed and it calls reload()
Since X is set to 500ms, reload() should be called only once and after 500ms.

最佳答案

您可以将SubjectdebounceTime结合使用。因此,让 AB 两个函数都向主题发送一个值。然后对主题流进行反跳,以便在经过 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演示这个。

关于Angular 和 Observable debounceTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48044801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com