Как регулировать ngxs @ Выбрать наблюдаемый - PullRequest
0 голосов
/ 31 мая 2018

Я создаю приложение , используя ngxs в качестве менеджера состояний.Мое приложение отображает поток сообщений, которые разбиты на страницы, но все сообщения находятся в состоянии, которое в моем случае составляет около 1000.У меня есть селектор , который разбивает посты на посты, но когда приложение загружается вначале, у меня огромная утечка производительности, когда приходят посты.

Я пробовал что-то радикальное, как это:

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

Но некоторые сообщения показываются практически мгновенно, а не через 10 секунд.Я что-то не так делаю?

1 Ответ

0 голосов
/ 31 мая 2018

Я бы порекомендовал оператор debounce .

debounce задерживает значения, испускаемые источником Observable, но отбрасывает предыдущие отложенные отсроченные выбросы, если новое значение поступает в источник Observable.Этот оператор отслеживает самое последнее значение из источника Observable и порождает Observable длительности, вызывая функцию durationSelector.

В вашем коде это будет выглядеть следующим образом:

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