Я пытаюсь получить Observable<MyType>
, выполнив следующее:
return this.cache.get<MyType, number>(storageName, version)
.map(cached => {
if (cached !== undefined) {
return cached;
}
return this.http.get<MyType>(`MyTypeGetUrl/${version}`)
.map(m => m)
.do(result => {
this.cache.put<MyType>(storageName, result).first().subscribe();
});
}).publishReplay(1).refCount();
cache.get
возвращает Observable<MyType>
и http.get<T>
возвращает Observable<T>
.
Iхотите проверить кеш на предмет объекта и, если он не существует, получить его с сервера, кешировать и вернуть.
Однако, если объект существует в кеше, он возвращает Observable<MyType>
,но если ему нужно перейти на сервер, он возвращает Observable<Observable<MyType>>
.
Как я могу сгладить результат с сервера, чтобы я мог возвращать Observable, вызывая только сервер, когда это необходимо?