【发布时间】:2021-01-13 15:01:36
【问题描述】:
所以我有一个像下面这样的功能
showLoader = () => <T>(source: Observable<T>) => {
LoaderService.loadPage.next(true);
return source.pipe(
finalize(() => {
LoaderService.loadPage.next(false);
})
);
};
然后我在进行如下 HTTP 调用时使用它
return this.http.get(url).pipe(showLoader())
但是假设我遇到了一个场景,我需要加载器或任何基于条件的 observable;像下面的东西
const loader : boolean = false
return this.http.get(url).pipe(concat(...), loader ? showLoader() : of(values))
我尝试使用iif 运算符,如下所示
const loader : boolean = false
return this.http.get(url).pipe(concat(...), mergeMap(v => iif(() => loader, showLoader(), of(v))))
并得到以下错误
TS2345:“(来源:Observable)=> Observable”类型的参数 不可分配给“SubscribableOrPromise”类型的参数。
有人能帮我理解我哪里出了问题以及如何纠正问题
【问题讨论】:
标签: javascript angularjs typescript rxjs