javascript - Kjede observabel betinget
For følgende TypeScript (som bruker rxjs):
getRegularData(): Observable<MyData> {
return WS.loadRegularData();
}
getAlternateData(): Observable<MyData> {
return WS.loadAlternateData();
}
hvordan kan en ny metode implementeres for å oppfylle følgende pseudokode:
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.
}
Svar #1
Det er mange måter du kan implementere dette på, en ville være å bruke en switchMap som inneholder din betingelse:
getData(): Observable<MyData> {
return getRegularData()
.switchMap(data => {
if (data != null) {
return Observable.of(data);
} else {
return getAlternateData();
}
});
}
