学多少就记录多少
Rxjs学习
可以理解为处理非异步的loadsh,ng中处理异步常用
创造类
create
import { Observable } from 'rxjs';
const observable = new Observable((observer)=>{
observer.next(123)
})
of
类似于一个迭代器,将参数迭代然后发出
import { of } from 'rxjs';
var source = of('Jerry', 'Anna');
from
参数必须是一个类数组
fromPromise
遍历promise
fromEvent
可以将事件转化成流
import { fromEvent } from 'rxjs';
const div:HTMLElement = document.getElementById('main5') as HTMLElement
let eventListener = fromEvent(div, 'click');
eventListener.subscribe(res=>{
console.log(454)
})
interval
interval创建一个每间隔指定时间发出一次事件的observable
import { interval } from 'rxjs';
const timer = interval(1000).subscribe(res=>{
console.log(res)
})
// 0
// 1
// ... 从0开始一秒打印一次
//停止
setTimeout(()=>{
timer.unsubscribe()
},2000)
timer
同interval 能传入两个参数 第一个代表首个元素发出的时间,第二个参数代表后面元素发出的间隔时间
Subject 和 BehaviorSubject
- BehaviorSubject是可以存储最后一条数据或者初始默认值的, 所以无论订阅者什么时候subscribe到数据源BehaviorSubject上, 都能接收到数据。
- BehaviorSubject需要初始值
- 可以**next()**中传递东西,next()是异步任务
subscribe 订阅
- 得先订阅 才能收到东西
- 是同步任务
pipe
可以往里面加一些操作
import { catchError, filter, mergeMap, switchMap, take, tap } from 'rxjs/operators';