Rxjs v 6. *
Це спростилося завдяки новій версії rxjs.
1) Оператори
import {map} from 'rxjs/operators';
2) Інші
import {Observable,of, from } from 'rxjs';
Замість ланцюга нам потрібно труби. Наприклад
Старий синтаксис:
source.map().switchMap().subscribe()
Новий синтаксис:
source.pipe(map(), switchMap()).subscribe()
Примітка: Деякі оператори змінюють назву через зіткнення імен із зарезервованими словами JavaScript! До них належать:
do
-> tap
,
catch
-> catchError
switch
-> switchAll
finally
-> finalize
Rxjs v 5. *
Цю відповідь я пишу частково, щоб допомогти собі, оскільки постійно перевіряю документи кожного разу, коли потрібно імпортувати оператора. Повідомте мене, якщо щось можна зробити краще.
1) import { Rx } from 'rxjs/Rx'
;
Це імпортує всю бібліотеку. Тоді вам не потрібно турбуватися про завантаження кожного оператора. Але вам потрібно додати Rx. Я сподіваюся, тремтіння дерев дозволить оптимізувати та вибрати лише необхідні фунціонери (потрібно перевірити) Як зазначалося в коментарях, тремтіння дерев не може допомогти. Тож це не оптимізований спосіб.
public cache = new Rx.BehaviorSubject('');
Або ви можете імпортувати окремих операторів.
Це дозволить оптимізувати вашу програму для використання лише таких файлів :
2) import { _______ } from 'rxjs/_________';
Цей синтаксис, як правило, використовується для основного об'єкта, подібного до Rx
себе, Observable
тощо,
Ключові слова, які можна імпортувати з цим синтаксисом
Observable, Observer, BehaviorSubject, Subject, ReplaySubject
3) import 'rxjs/add/observable/__________';
Оновлення для Angular 5
З Angular 5, який використовує rxjs 5.5.2+
import { empty } from 'rxjs/observable/empty';
import { concat} from 'rxjs/observable/concat';
Вони зазвичай супроводжуються безпосередньо спостережуваними. Наприклад
Observable.from()
Observable.of()
Інші такі ключові слова, які можна імпортувати за допомогою цього синтаксису:
concat, defer, empty, forkJoin, from, fromPromise, if, interval, merge, of,
range, throw, timer, using, zip
4) import 'rxjs/add/operator/_________';
Оновлення для Angular 5
З Angular 5, який використовує rxjs 5.5.2+
import { filter } from 'rxjs/operators/filter';
import { map } from 'rxjs/operators/map';
Вони зазвичай надходять у потік після створення Observable. Як flatMap
у цьому фрагменті коду:
Observable.of([1,2,3,4])
.flatMap(arr => Observable.from(arr));
Інші такі ключові слова, що використовують цей синтаксис:
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
це псевдонім, mergeMap
тому нам потрібно імпортувати mergeMap
для використання flatMap
.
Примітка щодо /add
імпорту :
Нам потрібно імпортувати лише один раз у цілому проекті. Тож його радили робити це в одному місці. Якщо вони включені в декілька файлів, а один із них видалено, збірка не вдасться з неправильних причин.
import {Observable} from 'rxjs/Observable';
імпортував би Observable, але вам не потрібно імпортувати все це, якщо ви використовуєте обіцянки ...toPromise
працює без нього.