如何限制ngxs @Select observable

时间:2018-05-31 10:15:17

标签: angular rxjs ngxs

我正在使用ngxs建立一个application作为我的州经理。我的应用程序显示分页的消息源,但所有消息都处于状态,在我的情况下大约为1000。我有a selector对帖子进行分页,但是当应用程序初始加载时,我有一个很好的性能消耗,因为帖子进来了。

我尝试过像这样的激进派:

    this.currentFeedSettings = this
        .store
        .select(CurrentFeedSettingState)
        .pipe(
            throttleTime(10000),
        );

但是有些消息几乎立即显示,但10秒后不会显示。我做错了吗?

1 个答案:

答案 0 :(得分:3)

我会推荐debounce运营商。

  

去抖动会延迟源Observable发出的值,但如果新值到达源Observable,则会丢弃先前待处理的延迟发射。此运算符跟踪源Observable的最新值,并通过调用durationSelector函数生成持续时间Observable。

在您的代码中,看起来像:

this.store
  .select(CurrentFeedSettingState)
  .pipe(debounceTime(100))
  .subscribe((res) => { ... });