Очистить наблюдаемое значение при выходе из системы - PullRequest
0 голосов
/ 16 июня 2020

Я хочу удалить наблюдаемое значение функции выхода из системы. Ниже представлено наблюдаемое в моем классе обслуживания

cacheSettingsData$: Observable<any>;

это метод, в котором значение присваивается.

public getUserSettings() {
    if (!this.cacheSettingsData$) {
      this.cacheSettingsData$ = this.requestUserSettings();
      this.userSettings = this.cacheSettingsData$;
    }
    return this.cacheSettingsData$;
  }

, поэтому проблема заключается в том, что пользователь выходит из наблюдаемого cacheSettingsData $ не очищается, и если другой пользователь входит в систему, он показывает те же старые данные.

Как я могу очистить данные в наблюдаемом, чтобы он снова загружал данные при входе в систему?

Пожалуйста, помогите

Спасибо, Шрути Наир

Ответы [ 3 ]

1 голос
/ 16 июня 2020

Это зависит от того, что вы подразумеваете под «ясно наблюдаемым». Вы можете просто переназначить cacheSettingsData$ пустому Observable:

this.cacheSettingsData$ = EMPTY;

Но это повлияет только на новых наблюдателей.

Если вы хотите уведомить всех подписанных наблюдателей, вы можете объединить Subject в цепочка:

loggedOut$ = new Subject();
...

this.cacheSettingsData$ = merge(
  this.requestUserSettings(),
  loggedOut$,
);

Тогда вы можете использовать его, например, как loggedOut$.next(null).

0 голосов
/ 16 июня 2020

Спасибо @Michael D "удалить this.cacheSettingsData $" у меня сработало.

0 голосов
/ 16 июня 2020

Вы можете очистить наблюдаемое при выходе из системы обработчика событий.

this.cacheSettingsData$ = of([]); 

Пожалуйста, примите в качестве ответа, если это поможет вам ... спасибо

...