Hut*_*tch 4 javascript reactive-programming observable rxjs typescript
对于以下TypeScript(使用rxjs):
getRegularData(): Observable<MyData> {
return WS.loadRegularData();
}
getAlternateData(): Observable<MyData> {
return WS.loadAlternateData();
}
Run Code Online (Sandbox Code Playgroud)
如何实现新方法以满足以下伪代码:
getData(): Observable<MyData> {
// try to use getRegularData, and return observable for result.
// if getRegularData returns null, get data from getAlternateData()
// instead and return observable for result.
}
Run Code Online (Sandbox Code Playgroud)
ols*_*lsn 14
有很多方法可以实现这个,一个是使用包含你的条件的switchMap:
getData(): Observable<MyData> {
return getRegularData()
.switchMap(data => {
if (data != null) {
return Observable.of(data);
} else {
return getAlternateData();
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5516 次 |
| 最近记录: |