2

我正在使用 ngxs 作为我的状态管理器来构建一个应用程序。我的应用程序显示了分页的消息提要,但所有消息都处于状态,在我的情况下约为 1000。我有一个对帖子进行分页的选择器,但是当应用程序初始加载时,随着帖子的进入,我的性能消耗很大。

我尝试了这样的激进方法:

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

但有些消息几乎立即显示,但不是在 10 秒后显示。难道我做错了什么?

4

1 回答 1

4

我会推荐debounce运算符。

debounce 延迟源 Observable 发出的值,但如果新值到达源 Observable 上,则丢弃先前挂起的延迟发射。该操作符跟踪源 Observable 的最新值,并通过调用 durationSelector 函数生成一个持续时间 Observable。

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

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

于 2018-05-31T13:21:52.210 回答