有条件的链可观察

时间:2017-02-15 23:35:37

标签: javascript typescript rxjs reactive-programming observable

对于以下TypeScript(使用rxjs):

R.html

如何实现新方法以满足以下伪代码:

getRegularData(): Observable<MyData> {
    return WS.loadRegularData();
}

getAlternateData(): Observable<MyData> {
    return WS.loadAlternateData();
}

1 个答案:

答案 0 :(得分:14)

有许多方法可以实现这一点,一种方法是使用包含条件的switchMap:

getData(): Observable<MyData> {
    return getRegularData()
        .switchMap(data => {
            if (data != null) {
                return Observable.of(data);
            } else {
                return getAlternateData();
            }
        });
}