Skip to content

Latest commit

 

History

History
64 lines (46 loc) · 2.23 KB

03、操作符.md

File metadata and controls

64 lines (46 loc) · 2.23 KB

操作符基础

操作符就是: ⼀个操作符是返回⼀个Observable对象的函数。 不过,有的操作符是根据其他Observable对象产⽣返回的Observable对象,有的操作符则是利⽤其他类型输⼊产⽣返回的Observable对象,还有⼀些操作符不需要输⼊就可以凭空创造⼀个Observable对象。

操作符的分类

根据功能,操作符可以分为以下类别:
·创建类(creation)
·转化类(transformation)
·过滤类(filtering)
·合并类(combination)
·多播类(multicasting)
·错误处理类(error Handling)
·辅助⼯具类(utility)
·条件分⽀类(conditional&boolean)
·数学和合计类(mathmatical&aggregat)

lettable和pipeable

RxJS从v5.5.0版本起引⼊了lettable操作符,⼤部分操作符都有pipeable操作符实现,注意是“⼤部分”⽽不是全部,这是因为
·静态类型操作符没有pipeable操作符的对应形式。
·拥有多个上游Observable对象的操作符没有pipeable操作符的对应形式。

操作符的一个基本使用示例:

import { of } from 'rxjs';
import { map } from 'rxjs/operators';

const source$ = of(1, 2, 3);
const result$ = source$.pipe(
  map(x => Math.pow(x, 2)),
);

source$.subscribe(console.log);
console.log(`<${'='.repeat(50)}${'='.repeat(50)}>`);
result$.subscribe(console.log);

下⾯的代码⽰例通过pipe串接了filter和map两个lettable操作符:

import { of } from 'rxjs';
import { filter, map } from 'rxjs/operators';


const source$ = of(1, 2, 3, 4, 5);
const resouce$ = source$.pipe(
  filter(x => x % 2 === 0),
  map(x => x * 2),
);

resouce$.subscribe(console.log);