有条件的可观察转变

时间:2017-04-06 14:49:26

标签: typescript rxjs observable

有没有办法执行条件Observable转换或在.flatMap()内返回原始Observable的方法?

以下代码将执行get() : Observable<T>;。如果get()返回的Observable内的值不为null,则getOrFetch()应返回此Observable。如果此值为null,则应返回fetcher()中的observable。

getOrFetch(fetcher: () => Observable<T>) : Observable<T> {
  let observable : Observable<T> = this.get()
    .flatMap(res => {
      if(res === null) return fetcher();
      else return Observable.of(res);
    }

  observable.do(() => console.log('This code does not execute :(');

  return observable;
}

我遇到的问题是我每次都将get()的值包装到一个新的Observable中。有没有办法避免这种情况?

更新

0 个答案:

没有答案