У меня есть сетевой вызов, где, скорее всего, API выдаст ошибку 400.Я хочу справиться с этим изящно.
Сейчас я делаю это, как показано ниже -
private fetchStatus(objectId: string): Observable<string> {
return Observable.create((observer) => {
this.http.get('/api/data-one').subscribe(response => {
if (response.result === 'SUCCESS') {
observer.next('SUCCESS');
} else {
observer.next('DENIED');
}
observer.complete();
},
error => {
observer.next('DENIED');
observer.complete();
});
});
}
Но я предпочитаю делать это с оператором Observable.map. Проблемас Observable.map - это когда api выбрасывает 400, все наблюдаемое переходит в режим ошибки.
Я хочу предотвратить это, потому что этот вызов get используется в forkJoin с другими вызовами.Отказ от этого будет означать отказ всего forkJoin ниже
forkJoin([
this.http.get('/api/route-2'),
this.http.get('/api/route-1'),
this.fetchStatus('abc')
]).subscribe((responseCollection: any) => {
observer.next({
result1: responseCollection[0],
result2: responseCollection[1],
result3: responseCollection[2]
});
observer.complete();
}, error => observer.error(error));