- 一个用来处理异步事件的js库。 例如ajax service work setTimeout setInterval Promise
observable 一个可以观察的对象
创建一个Observable(一个可观察的对象)
官方案例 创建了一个 Observable,它每隔一秒会向观察者发送字符串 ‘hi’ 。
var observable = Rx.Observable.create(function subscribe(observer) {
var id = setInterval(() => {
observer.next('hi')
}, 1000);
});
我们可以使用subscribe来订阅observable对象
observable.subscribe(v=>{
console.log(v) // 每隔一秒打印一个hi
})
pipe 用法
- 一个辅助函数它存在于 Observable 上 我们可以直接在pipe函数中写opteartors运算符 tap map take 等等
tap mergeMap 等运算符
- tap 可以理解为窥探,只看不改。但影响只局限在tap内部,不会对外产生影响
- mergeMap 接受一个函数作为参数,必须返回一个Observable对象
import { RX, fromEvent, interval, Observable, of, take } from 'rxjs';
import { tap, mergeMap, map, timer } from "rxjs/operators";
created(){
var ob = of(2)
ob.pipe(
tap(v =>{ console.log(v) }), // 输出: 2
mergeMap(v => this.a()), // mergeMap 接受一个函数作为参数,必须返回一个Observable对象
tap(v=>{ console.log(v)}), //输入:aaa
)
}
a(){
return of('aaa')
}