一、RxJS 库
创建可观察对象的函数
Observable creation functions
RxJS 提供了一些用来创建可观察对象的函数。这些函数可以简化根据某些东西创建可观察对象的过程,比如事件、定时器、承诺等等。比如:
操作符
Operators
操作符是基于可观察对象构建的一些对集合进行复杂操作的函数。RxJS 定义了一些操作符,比如 map()
、filter()
、concat()
和 flatMap()
。
二、Observable、静态方法、操作符的引用方法区别
RxJSv5:
引用:
import {Observable} from "rxjs/Observable";
import "rxjs/add/observable/of";
import "rxjs/add/Observable/fromEvent";
import "rxjs/add/operator/map";
// 或
import { Observable, } from 'rxjs/Observable';
import { of } from 'rxjs/observable/of';
import { fromEvent } from 'rxjs/observable/fromEvent';
import { map} from 'rxjs/operator/map';
import { map, mergeMap, } from 'rxjs/operators';
import { catchError } from 'rxjs/operators';
import { _throw } from 'rxjs/observable/throw';
使用:
Observable.fromEvent(someDocumen, "someEvent").startWith(0).map()
Observable.of({1, 2, 3})).map(x => x + 1)
RxJSv6:
引用:
// import {Observable} from "rxjs/index"; //Observable
// import {fromEvent} from "rxjs/index"; //静态方法
import { Observable, of } from 'rxjs/'; //Observable
import { map, mergeMap } from 'rxjs/operators'; //操作符
import { fromEvent} from "rxjs/"; //静态方法
import { catchError } from 'rxjs/operators';
import { throwError } from 'rxjs/';
使用:
fromEvent(someDocumen, "someEvent").pipe(
startWith(0),
map()
)
三、RXJS.v5 -> RXJSv6变化:
catch操作符更名为catchError
throw操作符更名为throwError
RXJS.v5 :
Observable creation functions:
import { fromPromise } from 'rxjs/observable/fromPromise';
import { interval } from 'rxjs/observable/interval';
import { fromEvent } from 'rxjs/observable/fromEvent';
import { ajax } from 'rxjs/observable/dom/ajax';
Operators:
import { pipe } from 'rxjs/util/pipe';
import { filter, map } from 'rxjs/operators';
import { retry,catchError } from 'rxjs/operators';
RXJSv6:
Observable creation functions:
import { fromPromise } from 'rxjs';
import { interval } from 'rxjs';
import { fromEvent } from 'rxjs';
import { ajax } from 'rxjs/ajax';
Operators:
import { filter, map } from 'rxjs/operators';
import { retry, catchError } from 'rxjs/operators';
Observable.pipe function
pipe()
函数也同时是 RxJS 的 Observable
上的一个方法
import { filter, map } from 'rxjs/operators';
const squareOdd = of(1, 2, 3, 4, 5)
.pipe(
filter(n => n % 2 !== 0),
map(n => n * n)
);
// Subscribe to get values
squareOdd.subscribe(x => console.log(x));
四、RxJS v5
https://v5.angular.io/guide/rx-library
创建可观察对象的函数:
操作符:
错误处理:
重试失败:
五、RxJS v6
https://www.angular.cn/guide/rx-library
创建可观察对象的函数: