a_z*_*ula 4 rxjs typescript angular
在 RxJS 5.5 中是否可以使用某些运算符来实现条件以跳过所有后续运算符并发出一些值 ( false)?例如,在这个 ng 服务方法中,如果出现以下情况,我将绕过这条.map链的一堆并false立即提供价值response.length === 0:
getProjectDrivers(projectId): Observable<any> {
return this.http.get('someUrl').pipe(
// if (response.length === 0) { return false; and skip whole operator chain bellow}
map((response: ProjectDriver[]) => response.filter((projectDriver: ProjectDriver) => projectDriver.streamName !== "AllRevenueStreamTotals")),
map((response: ProjectDriver[]) => command => ({})
)
)
.catch(this.handleError);
Run Code Online (Sandbox Code Playgroud)
}
我想你总是可以玩 switchMap
return this.http.get('someUrl').pipe(
switchMap(response => {
if (!response.length) {
return of(null);
} else {
return of(result).pipe(
map((response: ProjectDriver[]) => response.filter((projectDriver: ProjectDriver) => projectDriver.streamName !== "AllRevenueStreamTotals")),
map((response: ProjectDriver[]) => command => ({}))
)
}
}
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
528 次 |
| 最近记录: |