Observable.lancer le remplacement dans rxjs 5.5.2
Je migre vers rxjs@5.5.2
et utilise des opérateurs lettable... Je mets également à jour les méthodes statiques Observable
. Je me demande quelle est la contrepartie de Observable.throw
et import 'rxjs/add/observable/throw';
.
Dois-je importer laid _throw
?
import { _throw } from 'rxjs/observable/throw';
Ou il y a un meilleur moyen. Honnêtement, j'ai aimé les méthodes statiques sur Observable
, et maintenant il semble que toutes les méthodes de création statiques comme of
, from
doit être importé de rxjs/observable/<methodName>
?
4 réponses
Je reçois toujours ma tête autour de 5.5 mais il semble que maintenant au lieu d'importer throw use ErrorObservable.
// import { _throw } from 'rxjs/observable/throw';
import { ErrorObservable } from 'rxjs/observable/ErrorObservable';
ErrorObservable.create('error');
De ce guide Il semble que ce soit _throw pour éviter un conflit de mots clés (le reste de la vidéo est bon pour commencer avec 5.5)
Oui _throw
est correct (cela fera exactement ce que jaychase a écrit mais est moins de code). Vous faites la même chose avec of
:
import {of} from 'rxjs/observable/of';
import {_throw} from 'rxjs/observable/throw';
// ...
// ...
if (result) {
return of(result as T);
} else {
return _throw('error');
}
}
Dans la suite de la réponse de Mick, dans la version rxjs 6 _thow est remplacé par throwError
import {Observable, throwError} from 'rxjs';
Pour angulaire 5 et supérieur:
import{Http} from '@angular/http';
import {HttpClient,HttpResponse,HttpErrorResponse } from '@angular/common/http';
import { Injectable} from '@angular/core'
import {Employee} from './employee';
import { Observable,throwError } from 'rxjs';
import { map,catchError } from 'rxjs/operators';
@Injectable()
export class employeeService{
constructor(private _http:Http){ }
getEmployees():Observable<Employee[]>{
return this._http.get('YOUR URL')
.pipe(
map((res: Response) => res.json()),
catchError(this.handleError)
);
//.pipe(catchError(this.handleError));
}
handleError(error:HttpErrorResponse){
console.log(error);
return throwError(error.message);
}
}