Angular-Rxjs

RxJS是一种JavaScript版本,是对异步数据流的编程。它将Http请求,Dom事件等数据包装成流的形式,对流进行处理,让我们能以同步编程的方式处理异步的数据。在Angular中进入RxJS就是为了异步可控和简单。

一、首先对比一下Rxjs和Promise处理异步的不同之处:

Rxjs处理异步:

Import {Observable} from 'rxjs';
let stream =new Observable(observable=>{
     setTimeout(()=>{
     observer.next('observable timeout');
     },2000);
});
stream.subscrible(value=>console.log(value));

Promise处理异步:

let promise=new Promise(resolve=>{
     setTimeout(()=>{
     resolve(' promise timeout');
     },2000);
});
promise.then(value=>console.log(value));

根据以上,我们可以发现,promise和rxjs还是有不用,Promise用的是then()和resolve(),而在Rxjs中用到的是next()和subscribe()。 并且rxjs可以支持中途撤回,发射多个值,并且提供了多种工具函数。

Rxjs支持撤回,即取消订阅。而Promise在创建之后无法撤回。

Import {Observable} from 'rxjs';
let stream =new Observable(observable=>{
     setTimeout(()=>{
     observer.next('observable timeout');
     },2000);
});
let disposable=stream.subscribe(value=>console.log(value));
    setTimeout(()=>{
     //取消执行
    disposable.unsubscribe();
},1000};

Rjsx支持多次执行,即发射多个值。而Promise对于事件只能触发一次,否则会抛异常。

let stream =new Observable<number>(observer=>{
let count=0;
setInterval(()=>{
  observer.next(count++);
  },1000);
  });
  stream.subscrible(value=>console.log("Observable>"+value));

Rxjs使用工具函数map filter

  • 安装npm install rxjs-compat
  • 引入import{Observable}from 'rxjs;
  • 引入 import{'rxjs/Rx'};
let stream =new Observable<number>(observer=>{
let count=0;
setInterval(()=>{
  observer.next(count++);
  },1000);
 });

stream.filter(val=>val%2==0)
      .subscrible(value=>console.log(''filter>''+value));
stream
      .map(value=>{
        return value*value
      });
      .subscribe(value=>console.log("map>"+value));

以上就是针对Rxjs异步传输数据的一些基本使用,包括属性的调用,函数的调用,事件的执行,希望我们能够一起学习。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值