Rxjs v 6. *
Es wurde mit einer neueren Version von rxjs vereinfacht.
1) Betreiber
import {map} from 'rxjs/operators';
2) Andere
import {Observable,of, from } from 'rxjs';
Anstatt zu verketten, müssen wir pfeifen. Zum Beispiel
Alte Syntax:
source.map().switchMap().subscribe()
Neue Syntax:
source.pipe(map(), switchMap()).subscribe()
Hinweis: Einige Operatoren haben eine Namensänderung aufgrund von Namenskollisionen mit reservierten JavaScript-Wörtern! Diese beinhalten:
do
-> tap
,
catch
-> catchError
switch
-> switchAll
finally
-> finalize
Rxjs v 5. *
Ich schreibe diese Antwort teilweise, um mir selbst zu helfen, da ich jedes Mal, wenn ich einen Operator importieren muss, die Dokumente überprüfe. Lassen Sie mich wissen, ob etwas besser gemacht werden kann.
1) import { Rx } from 'rxjs/Rx'
;
Dadurch wird die gesamte Bibliothek importiert. Dann müssen Sie sich nicht um das Laden jedes Bedieners kümmern. Sie müssen jedoch Rx anhängen. Ich hoffe, dass das Baumschütteln optimiert wird und nur die benötigten Funktionen auswählt (muss überprüft werden). Wie in den Kommentaren erwähnt, kann das Baumschütteln nicht helfen. Das ist also nicht optimiert.
public cache = new Rx.BehaviorSubject('');
Oder Sie können einzelne Operatoren importieren .
Dadurch wird Ihre App so optimiert, dass nur die folgenden Dateien verwendet werden :
2) import { _______ } from 'rxjs/_________';
Diese Syntax wird normalerweise für Hauptobjekte wie sich Rx
selbst oder Observable
usw. verwendet.
Schlüsselwörter, die mit dieser Syntax importiert werden können
Observable, Observer, BehaviorSubject, Subject, ReplaySubject
3) import 'rxjs/add/observable/__________';
Update für Angular 5
Mit Angular 5, das rxjs 5.5.2+ verwendet
import { empty } from 'rxjs/observable/empty';
import { concat} from 'rxjs/observable/concat';
Diese werden in der Regel direkt von Observable begleitet. Zum Beispiel
Observable.from()
Observable.of()
Andere solche Schlüsselwörter, die mit dieser Syntax importiert werden können:
concat, defer, empty, forkJoin, from, fromPromise, if, interval, merge, of,
range, throw, timer, using, zip
4) import 'rxjs/add/operator/_________';
Update für Angular 5
Mit Angular 5, das rxjs 5.5.2+ verwendet
import { filter } from 'rxjs/operators/filter';
import { map } from 'rxjs/operators/map';
Diese kommen normalerweise in den Stream, nachdem das Observable erstellt wurde. Wie flatMap
in diesem Code-Snippet:
Observable.of([1,2,3,4])
.flatMap(arr => Observable.from(arr));
Andere solche Schlüsselwörter, die diese Syntax verwenden:
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
ist ein Alias für, mergeMap
also müssen wir importieren, um es mergeMap
zu verwenden flatMap
.
Hinweis für /add
Importe :
Wir müssen nur einmal im gesamten Projekt importieren. Es wird daher empfohlen, dies an einem einzigen Ort zu tun. Wenn sie in mehreren Dateien enthalten sind und eine davon gelöscht wird, schlägt der Build aus falschen Gründen fehl.
import {Observable} from 'rxjs/Observable';
würde das Observable importieren, aber Sie müssen nicht alles importieren, wenn Sie Versprechen verwenden ...toPromise
funktioniert ohne es.