Rxjs throttleTime - 实时更新限制?

时间:2018-01-28 14:04:08

标签: rxjs

有没有办法在Rxjs中更新throttleTime。你正在靠近页面底部滚动,所以我们每隔400ms只需要一次节流,当你越靠近顶部时,我们会增加到100ms,因为目标区域在那个区域

this.scrollSubscription$ = this.scrollSubject$
                .asObservable()
                .throttleTime(200, undefined, throttleTimeConfig)
                .subscribe(event => this.throttledScrollHandler(event));

我要做的是有两个单独的下标,因为我找不到这样做的方法。

this.slowerSubscriber$ = this.scrollSubject$
                    .asObservable()
                    .throttleTime(400,.......

我想我会问,因为我无法想到实现它的另一种方式

1 个答案:

答案 0 :(得分:2)

您可以使用throttle来实现自己的静默期:

// Make this function extract the position using scrollY, page offsets or whatever you want to use
const getScrollPositionFromEvent = event => 42;
this.scrollSubject$.asObservable()
  .throttle(event => Observable.interval(
    getScrollPositionFromEvent(event) <= 100 ? 100 : 400
  ))
  .subscribe(console.log);

您可以看到一个有效的例子here。它只是通过给定的输入发出,在您的情况下,它将基于滚动偏移。