学习笔记——>RxJS 创建数据流

2019-07-06  本文已影响0人  吉林天师

在详细学习之前,先统揽全局吧

创建数据流

  在RxJS的世界中,一切以数据流为中心,在代码中,数据流以Observable类的实例对象形式存在,创建Observable对象就是数据流的开始

创建类操作符

  ⚠️⚠️⚠️对于应用开发工程师,应该尽量使用创建类操作符,避免直接利用Observable的构造函数来创造对象,RxJS提供的创建类操作符覆盖了几乎所有的数据流创建模式,没有必要重复发明轮子。在很多场景下,开发者自己用构造函数创造Observable对象可能需要写很多代码,使用RxJS提供的创建类操作符可能只需要一行就能搞定

创建同步数据流

Observable.create = function(subscribr){
        return new Observable(subscribe);
};

⚠️⚠️ create不需要到人任何其他模块,就可以直接使用(还有个pipe)

import {Observable} from 'rxjs/Observable';
import 'rxjs/add/observable/of';

const source$ = Observable.of(1,2,3);

source$.subscribe(
        console.log;
        null,
        () => console.log('complete')
);
不使用打补丁方式
import {of} 'rxjs/observable/of';
const source$ = of(1,2,3)
of 产生的是Cold Observable
const source$ = Observable.range(1,100);
range 第一个参数是数字序列开始的数字,第二个参数是数字序列的长度,产生的Observable 对象首先产生数字1,每次递增1,依次产生100个数字,然后完结

这样可以改变步长
 const source$ = Observable.of(1,2,3).map(x => x * 2)
const source$ = Observable.generate(
    2, // 初始值,相当于for 循环中的i
    value => value < 10,//继续的条件
    value => value + 2,//每次递增
     value => value * value//产生的结果
)
import 'rxjs/add/opeartor/repeat';

使用lettable 操作符

import {repeat} 'rxjs/operators/repeat';
  repeat 只有在上游Observable对象完结之后才会重新订阅。因为在完结之前,repeat也不知道会不会有新的数据从上游被推送下来
   传入参数为负整数表示无限重复订阅
const source$ =Observable.of(1,2,3)
const repeated$ = source$.repeat(10);

创建异步数据流

import 'rxjs/add/observable/interval'
const source$ =Observable.interval(1000); // 一秒钟产生一个
import 'rxjs/add/observable/timer'
const source$ =Observable.timer(1000); // 数值是毫秒数,Date类型就是明确的时间点
const source$ = Observable.timer(2000,1000) ;// 

interval 是间隔时间参数相同时timer的一种简写

这一章程墨先生写的很精彩,我建议初学者可以从这一章开始看起,比较容易入门。然后回过头看前面的概念部分。就如同先吃萝卜再种萝卜

上一篇下一篇

猜你喜欢

热点阅读