У меня есть это в моем сервисе
doSomething(): Observable<any> {
return this.http.get('http://my.api.com/something')
.pipe(
map((data: Response) => {
if (data && data['success'] && data['success'] === true) {
return true;
} else {
return false;
}
}
)
);
}
Это работает, я могу подписаться на функцию из моего компонента, например
this.myService.doSomething().subscribe(
(result) => {
console.log(result);
},
(err) => {
console.log("ERROR!!!");
}
);
Все это уже работает, но я хочу провести рефакторинг, чтобы можно было удалить
if (data && data['success'] && data['success'] === true)
на моей карте. Так что функция карты будет выполнена только тогда, когда я заранее выполнил проверку. Моей первой мыслью было добавить функцию в стек конвейера, которая будет принимать Response от http-клиента, проверить, выполнены ли условия, в противном случае выдается ошибка (с помощью функции throwError). Но я изо всех сил как (по крайней мере, выяснить, какую функцию Rxjs использовать).
Может кто-нибудь помочь мне с этим?