Я буду дорожить этим сам и прочту пару раз, я нашел это очень полезным. Если вы заметите, что когда ошибка не обрабатывается или не выдается, вы получите данные такими, какие они есть, даже если ошибка / сбой.
у много уроков, которые делают что-то вроде этого:
http.get("...").subscribe(
success => console.log('hello success'),
error => console.log('bye error')
);
Я не знаю, как это работает, потому что нет никаких типов или что-то,тем не мение Я пытался сделать это сам, и в итоге запрос всегда проходит успешно, даже если у меня есть ошибка. В чем проблема?
Нарушитель спокойствия:
this.memberService.create(this.currentMember)
.subscribe(
success => {
let mem: Member = success.json() as Member;
if (this.selectedOrganization) {
this.addMemberToOrganization(mem);
} else if (this.selectedServiceProvider) {
this.addMemberToServiceProvider(mem);
} else {
this.toastsService.error("lbl_users_service_provider_and_organization_undefined");
}
},
error => console.log(error)
);
Create-Method в memberService:
create(member: Member): Observable<any> {
return this.http
.post(this.RESOURCE_BASE_URL, member)
.map(response => {
if (response.status === 200) this.toastsSerivce.success(this.translateService.instant('lbl_users_member_created'));
return response;
})
.catch(error => this.toastsSerivce.error(this.translateService.instant('lbl_users_member_create_failed')));
}
Я даже ловлю ошибку, ноsubscribe
часть, кажется, не заботится. Это не вsuccess.json()
потому что, если есть ошибка, нетjson
, Но если есть ошибка, я хочу вызватьerror =>...
вместоsuccess
, Любой совет высоко ценится.