有条件链观察到
问题描述:
对于下面的打字稿(使用rxjs):有条件链观察到
getRegularData(): Observable<MyData> {
return WS.loadRegularData();
}
getAlternateData(): Observable<MyData> {
return WS.loadAlternateData();
}
如何一种新的方法来实现,以满足以下伪代码:
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.
}
答
有可以实现这个方法很多,一个将使用包含您的条件的switchMap:
getData(): Observable<MyData> {
return getRegularData()
.switchMap(data => {
if (data != null) {
return Observable.of(data);
} else {
return getAlternateData();
}
});
}