Sur la page de documentation Angular 2 pour l'utilisation du service Http, il y a un exemple.
getHeroes (): Observable<Stuff[]> {
return this.http.get(this.url)
.map(this.extractData)
.catch(this.handleError);
}
J'ai cloné le projet angular2-webpack-starter et ajouté moi-même le code ci-dessus.
J'ai importé en Observable
utilisant
import {Observable} from 'rxjs/Observable';
Je suppose que les propriétés Observable
sont également importées ( .map
fonctionne). Regardé le changelog pour rxjs.beta-6 et rien n'est mentionné catch
.
javascript
angular
typescript
rxjs
BrianRT
la source
la source
import {Observable} from 'rxjs/Observable';
? Cela me semble plus intuitif.rxjs/Observable
module n'importe pas d'opérateurs car il y a beaucoup d'opérateurs. Lerxjs/Rx
module importe tout ... Je pense que c'est un choix de conception.Avec RxJS 5.5+, l'
catch
opérateur est désormais obsolète. Vous devez maintenant utiliser l'catchError
opérateur en conjonction avecpipe
.Pour chaque opérateur RxJS que vous importez,
catchError
vous devez maintenant importer depuis 'rxjs / operators' et utiliser l'opérateur de tube.Exemple de capture d'erreur pour une requête Http Observable
Notez ici qui
catch
est remplacé parcatchError
et que l'pipe
opérateur est utilisé pour composer les opérateurs de la même manière que ce à quoi vous êtes habitué avec le chaînage de points.Consultez la documentation rxjs sur les opérateurs pipable (anciennement appelés louables ) pour plus d'informations.
la source
map(res => res)
nécessaire?pipe
fonction RxJS vous permet de combiner plusieurs fonctions en une seule fonction. La fonction pipe () prend comme arguments les fonctions que vous souhaitez combiner et renvoie une nouvelle fonction qui, lorsqu'elle est exécutée, exécute les fonctions composées dans l'ordre. Cette cartographie ne fait rien, car c'est techniquement une fonction d'identité.la source