1 订阅
通过订阅import { Observable } from 'rxjs' getRxjsData(){ return new Observable((observer)=>{ setTimeout(()=>{ var username:string='张三' observer.next(username) //通过next触发 相对于promise重的resolve },2000) }) } 使用时,引入该函数所在的服务或其他import { RequestService } from '../../service/request.service' constructor(public request:RequestService) { let rxjsdata = this.request.getRxjsData(); rxjsdata.subscribe((data)=>{ //通过订阅方法 console.log(data); })}
2 订阅的取消
constructor(public request:RequestService) { let rxjsdata = this.request.getRxjsData(); let d = rxjsdata.subscribe((data)=>{ //通过订阅方法 console.log(data); }) setTimeout(()=>{ d.unsubscribe(); /* 取消订阅,可以撤回*/ },1000)}事件将不会触发
3 订阅的多次执行
getRxjsIntervalData(){
let count:number = 0
return new Observable<any>((observable)=>{
setInterval(()=>{
count++
let username = '张三--rxjs--intetval'+" "+count
observable.next(username)
},2000)
})
}
let streemInterval = this.request.getRxjsIntervalData()
streemInterval.subscribe((dataa=>{
console.log(dataa);
}))