Sto scrivendo una piccola funzione di utilità che avvolgono una chiamata a AngularJS http.get con le intestazioni di autenticazione necessarie:RxJS e AngularJS HTTP: come posso ottenere questo risultato?
get(endpoint: string): Observable {
var headers = new Headers();
this._appendAuthentificationHeaders(headers, this.user.credentials);
return this.http.get(endpoint, { headers: headers })
.map(res => res.json());
}
Il punto qui è che se this.user è nullo, il metodo sarà solo crash. Così ho tre opzioni:
- ritorno nulli e verificare che il valore di ritorno su ogni chiamata ...
- un'eccezione
- Trovare un modo per restituire anche un oggetto Observable RxJS che attiverà direttamente la gestore degli errori.
Vorrei implementare il terzo metodo, in quanto mi consente di unificare il comportamento di questo metodo: restituisce sempre un osservabile indipendentemente da ciò che accade.
- Avete un'idea su come farlo?
- Devo creare un nuovo Osservabile e unire questi due?
- Cosa posso fare?
I'l andare per Observable.throw ('utente è nullo'); Grazie mille! – Clement
Un manuale 'Observable.throw()' ha dimostrato di essere uno dei pattern di gestione degli errori più sottoutilizzati e più utili che ho incontrato in Rx/angular 4. – msanford