Rxjs v 6. *
Se simplificó con la versión más nueva de rxjs.
1) Operadores
import {map} from 'rxjs/operators';
2) Otros
import {Observable,of, from } from 'rxjs';
En lugar de encadenar, necesitamos canalizar. Por ejemplo
Sintaxis antigua:
source.map().switchMap().subscribe()
Nueva sintaxis:
source.pipe(map(), switchMap()).subscribe()
Nota: ¡ Algunos operadores tienen un cambio de nombre debido a colisiones de nombres con palabras reservadas de JavaScript! Éstas incluyen:
do
-> tap
,
catch
-> catchError
switch
-> switchAll
finally
-> finalize
Rxjs v 5. *
Estoy escribiendo esta respuesta en parte para ayudarme a mí mismo, ya que sigo revisando los documentos cada vez que necesito importar un operador. Avísame si se puede hacer algo mejor.
1) import { Rx } from 'rxjs/Rx'
;
Esto importa toda la biblioteca. Entonces no necesita preocuparse por cargar cada operador. Pero debe agregar Rx. Espero que la agitación de árboles optimice y elija solo las funciones necesarias (es necesario verificar) Como se mencionó en los comentarios, la agitación de árboles no puede ayudar. Entonces esta no es una forma optimizada.
public cache = new Rx.BehaviorSubject('');
O puede importar operadores individuales .
Esto optimizará su aplicación para usar solo esos archivos :
2) import { _______ } from 'rxjs/_________';
Esta sintaxis generalmente se usa para el objeto principal como él Rx
mismo o Observable
etc.,
Palabras clave que se pueden importar con esta sintaxis
Observable, Observer, BehaviorSubject, Subject, ReplaySubject
3) import 'rxjs/add/observable/__________';
Actualización para Angular 5
Con Angular 5, que usa rxjs 5.5.2+
import { empty } from 'rxjs/observable/empty';
import { concat} from 'rxjs/observable/concat';
Suelen ir acompañados de Observable directamente. Por ejemplo
Observable.from()
Observable.of()
Otras palabras clave que se pueden importar con esta sintaxis:
concat, defer, empty, forkJoin, from, fromPromise, if, interval, merge, of,
range, throw, timer, using, zip
4) import 'rxjs/add/operator/_________';
Actualización para Angular 5
Con Angular 5, que usa rxjs 5.5.2+
import { filter } from 'rxjs/operators/filter';
import { map } from 'rxjs/operators/map';
Por lo general, estos vienen en la secuencia después de que se crea el Observable. Como flatMap
en este fragmento de código:
Observable.of([1,2,3,4])
.flatMap(arr => Observable.from(arr));
Otras palabras clave que utilizan esta sintaxis:
audit, buffer, catch, combineAll, combineLatest, concat, count, debounce, delay,
distinct, do, every, expand, filter, finally, find , first, groupBy,
ignoreElements, isEmpty, last, let, map, max, merge, mergeMap, min, pluck,
publish, race, reduce, repeat, scan, skip, startWith, switch, switchMap, take,
takeUntil, throttle, timeout, toArray, toPromise, withLatestFrom, zip
FlatMap :
flatMap
es el alias de, por mergeMap
lo que debemos importar mergeMap
para usarlo flatMap
.
Nota para las /add
importaciones :
Solo necesitamos importar una vez en todo el proyecto. Por eso se aconseja hacerlo en un solo lugar. Si se incluyen en varios archivos y uno de ellos se elimina, la compilación fallará por motivos incorrectos.
import {Observable} from 'rxjs/Observable';
importaría el Observable, pero no necesita importarlo todo si está usando promesas ...toPromise
funciona sin él.