angular - example - rxjs pipe
Reemplazo observable.throw en rxjs 5.5.2 (4)
Estoy migrando a [email protected]
y utilizando operadores [email protected]
... También actualizo los métodos estáticos Observable
. Me pregunto cuál es la contraparte de Observable.throw
e import ''rxjs/add/observable/throw'';
.
¿Debo importar el _throw
feo?
import { _throw } from ''rxjs/observable/throw'';
O hay una mejor manera. Honestamente, me gustaron los métodos estáticos en Observable
, y ahora parece que todos los métodos de creación estática como, from
deberían importarse desde rxjs/observable/<methodName>
?
Continuando con la respuesta de Mick, en la versión 6 de rxjs _thow se reemplaza por throwError
import {of} from ''rxjs/observable/of'';
import {_throw} from ''rxjs/observable/throw'';
// ...
// ...
if (result) {
return of(result as T);
} else {
return _throw(''error'');
}
}
Para Angular 5 y superior:
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);
}
}
Sí, el _throw
es correcto (esto hará exactamente lo que JayChase escribió pero es menos código). Haces lo mismo con of
import {Observable, throwError} from ''rxjs'';
Todavía me sale la cabeza por 5.5, pero parece que ahora, en lugar de importar, use ErrorObservable .
// import { _throw } from ''rxjs/observable/throw'';
import { ErrorObservable } from ''rxjs/observable/ErrorObservable'';
ErrorObservable.create(''error'');
A partir de esta guide , parece que debe ser _throw para evitar un choque de palabras clave (el resto del video es bueno para comenzar con 5.5)