example angular rxjs

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''); } }

Guía de Migración RxJS


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)