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);
}))