Ja, Sie können mit dem Fang-Operator wie folgt umgehen und Alert anzeigen, wie Sie wollen, aber zuerst müssen Sie importieren Rxjs
für die gleichen wie auf diese Weise
import {Observable} from 'rxjs/Rx';
return this.http.request(new Request(this.requestoptions))
.map((res: Response) => {
if (res) {
if (res.status === 201) {
return [{ status: res.status, json: res }]
}
else if (res.status === 200) {
return [{ status: res.status, json: res }]
}
}
}).catch((error: any) => {
if (error.status === 500) {
return Observable.throw(new Error(error.status));
}
else if (error.status === 400) {
return Observable.throw(new Error(error.status));
}
else if (error.status === 409) {
return Observable.throw(new Error(error.status));
}
else if (error.status === 406) {
return Observable.throw(new Error(error.status));
}
});
}
Sie können auch Fehler handel (mit err Block), den Wurf von catch-Block ist während .map
Funktion,
so -
...
.subscribe(res=>{....}
err => {//handel here});
aktualisiert
wie für jeden Status erforderlich ist, ohne particluar einer Überprüfung Sie dies versuchen: -
return this.http.request(new Request(this.requestoptions))
.map((res: Response) => {
if (res) {
if (res.status === 201) {
return [{ status: res.status, json: res }]
}
else if (res.status === 200) {
return [{ status: res.status, json: res }]
}
}
}).catch((error: any) => {
if (error.status < 400 || error.status ===500) {
return Observable.throw(new Error(error.status));
}
})
.subscribe(res => {...},
err => {console.log(err)});
Ist es möglich, jeden Statuscode als Bedingung nicht schreiben zu müssen? Wie in nur den Status zurückgeben, und dann können meine Komponenten bestimmen, was mit diesen Statuscodes zu tun ist. –
Ja, Sie können einfach den Fehler zurückgeben, ohne den Status zu überprüfen, der davon abhängt, wie Sie den Fehlerblock behandeln wollen. –
Können Sie das bearbeiten? Es fällt Ihnen schwer, das mit Ihrem bestehenden Beispiel zu tun. –