条件switchMap:原始值或其他可观察值

时间:2019-01-18 21:30:37

标签: rxjs rxjs6

我有一种方法可以通过以下键从本地存储中获取值: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)));`

在这种情况下,问题在于“值”不是一个Observable,而switchMap要求返回一个Observable。

如果是这样,最好的选择是什么?

在这种情况下,使用OF运算符是否有效?

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

是否有遵循良好实践的更好的选择?

0 个答案:

没有答案