rxjs 入门学习-常用的API(1)

1. 常见的创建类操作符

  from: 可以把数组,Promise,以及Iterable 转化为 Obsevable

  fromEvent: 可以把事件转化为 Observable

  of: 接受一系列的数据,并把他们emit出去

2 .  网站 RxMarbles.com 有大部分操作符的宝珠图

3. mapTo  相当于map ( _  => 1);

4. 假设有个observable事件,

         var length = document.getElementById('length');

        const length$ = observable.formEvent(length , 'keyup') pluck('target' , 'value')  相当于

        const length$ =  observable.formEvent(length, 'keyup').map ( ev=> ev.target.value)

5.  observal的参数next,error ,complete  , interval(), take()

           const interval$ = Rx.observable.interval(100) : 表示间隔100ms 发送一次

           const interval$ = Rx.observable.interval(100).take(3): take表示取前几个

          例子:


6. timer( 100, 100);

        第一个参数代表延迟100ms 运行

        第二个参数代表 运行后 以100ms 事件周期发送数据,

7. do()

          相当于连接外界的桥梁,可以改变外部值等,但不影响subsrcibe()。


8. skip(2)

        表示省略掉2个元素,从第三个开始

9. skan( (x, y)=> {return x+y})

        skan 里面是个函数,函数传参的第一个值x 表示是一个累加器的值,即 renturn的x+y的值 会传给x, 而y 就是传进去流的值。


10. reduce( (x, y)=> { return [...x, y] } , [ ]);

        reduce和scan比较像,但是scan 是一个个值发射出去,而reduce 只发射最终的运算结果,

        其中 x 为累加的结果,y是流传过去的结果, reduce的处理不仅仅局限于数值,也可以是一个对象,数组,字典对象等,如上, 给x赋初始值 [ ],


11. nerver();

        不会emit, 也不会结束

12. empty()

        直接结束,但不发射

13. throw()

        进入error 状态

14. debounce()  和  debounceTime()

        debounceTime(300)  表示 300ms 发射一次值,期间的值全部过滤掉

        debounce( () => Rx.observable.interval(300)) 效果和上述相似,但比上述强大,可以自定义条       件。

15. distinct()

        让整个序列中没有元素, 由于distinct 是对整个序列监控,因此,对于无尽序列要小心使用。

16. distinctUntilChanged()

        和它前一个对比,不能相同。

17. merge( observableA$, observableB$ )

      把observableA$ 和 observableB$ 按照他们自身的顺序,合并起来

18. concat( observableA$, observableB$)

        与数组类似,将observableB$ 连接到 observableA$ 的后面, 如果 observableA$  是个无尽序列,那么将只会输出 observableA$。

19 . startWith()

        比如 startWith(0) 就是在序列前面concat一个 0, 作用是给,序列赋一个初始值

20. combineLatest()

        例如const merge$ =  Rx.observable. combineLatest(  observableA$, observableB$, (x, y) => x+y)  两个流都有值的时候流才开始,任何一个值的改变,也会重新触发

21. zip()

                const merge$ =  Rx.observable. zip(  observableA$, observableB$, (x, y) => x+y)

        zip  和 combineLatest不同的是, zip 是两个流序列 一一对应计算的,比如 observableA$序列的第一个数 和observableB$ 第一个数相对应的。

22 . withLatestFrom()

          此方法输出的是一个数组,不要求成对出现, 但只有第一个流发生改变时,才会触发。第二个流改变,没有任何影响。

高级操作符

23. mergeMap()

    此方法是把多个流合并成一个流(拍扁),按照顺序穿插,会保留所有元素的子元素

24. swtichMap()

     switchMap相比于mergeMap ,当新流来的时候,会抛弃原来的流。

举个例子, 比如删除文章操作,删除文章的时候也会删除文章下面的评论,对于mergeMap,当删除第一篇文章的时候,删除第二篇文章的需求来了,那么还会继续删除第一篇文章的评论同时穿插第二篇文章的删除需求。对于switchMap,当第二篇文章删除需求来了,那么就会停止第一篇文章评论删除需求,进而处理第二篇文章删除需求。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容