🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
>Rxjs异步数据流编程 对比promise 优势 1. 支持订阅 2. 反向订阅 3. 管道过滤器 4. map处理器 >定义Rxjs.compoent.ts ~~~ import { Injectable } from '@angular/core'; import {Observable, observable} from "rxjs"; @Injectable({ providedIn: 'root' }) export class RxjsService { constructor() { } public getRxjsData(){ return new Observable((observer)=>{ setTimeout(()=>{ var ret={code:500,msg:" rxjs ret server run error"}; observer.next(ret); // observer.error("error") },2000); }) } } ~~~ >在demo.component.ts 中调用执行 ~~~ constructor(public PromiseService: PromiseService, public RxjsService: RxjsService) { } ngOnInit(): void { } public runRxjs(): void { let a = this.RxjsService.getRxjsData(); /// 管道过滤器 let handle = a.pipe( filter((value) => { if (value == "") { return false; } //不返回 return true }), map((value) => { return JSON.stringify(value )+ "追加"; }) ).subscribe((data) => { //如果多次执行,会导致这里 多次 回调 console.log(data); }); setTimeout(() => { //取消订阅 // handle.unsubscribe(); }, 1000); } ~~~