Я знаю, что эта ветка старая, но я думаю, что знаю, что имел в виду другой ответ о добавлении предмета "сброса" для добавления новых значений. Проверьте этот пример:
private _refreshProfile$ = new BehaviorSubject<void>(undefined);
public profile$: Observable<Customer> = _refreshProfile$
.pipe(
switchMapTo(this.callWS()),
shareReplay(1),
);
public refreshProfile() {
this._refreshProfile$.next();
}
В приведенном выше фрагменте все profile$
новые подписчики получат самое последнее излучаемое значение (при вызове callWS()
один раз). Если вы хотите «обновить» клиента, к которому вы предоставили общий доступ, вы должны вызвать «refreshProfile ()». Это выдаст новое значение, пройдя через switchMapTo
, переназначив значение воспроизведения и также уведомив любого profile$
открытого подписчика.
Хорошего вам