Условное switchMap: необработанное значение или другое наблюдаемое - PullRequest
0 голосов
/ 19 января 2019

У меня есть метод, который получает значение из локального хранилища через ключ: MyLocalService.get(key).

MyLocalService.get(key) возвращает Observable<MyObject>.

Однако, когда ключ не существует в локальном хранилище, мне нужно запросить на моем бэкэнде: MyRemoteService.get(key).

MyRemoteService.get(key) также возвращает Observable<MyObject>.

Теперь я хотел бы объединить эти два вызова в одну наблюдаемую, что-то вроде:

`MyLocalService
   .get(key)
   .pipe(switchMap((value: MyObject) => 
       value ? value: MyRemoteService.get(key)));`

Проблема в этом случае заключается в том, что «значение» НЕ является Наблюдаемым, а switchMap требует, чтобы Наблюдаемое было возвращено.

Если так, то какая лучшая альтернатива?

Является ли использование оператора OF чем-то верным в этом сценарии?

value? of(value): MyRemoteService.get(key)

Есть ли лучшая альтернатива, которая следует за хорошей практикой?

...