一 switchMap
1.可以直接返回一個observable,而map是將一個非observable變成一個observable返回
observable.pipe(switchMap(x=>result))//result爲observable
observable.pipe(map(x=>result))//result爲非observable
2.若是收到多個observable,將返回最新的observable
//app.html
this.router.navigate([`/heroDetail/${this.id++}`])
//detail.ts
let info=this.activatedRoute
info.paramMap.pipe(
switchMap(x=>this.t.getData())
).subscribe(x=>console.log(x))
//val的初始值爲10,點擊三下,直接返回13,而不是11,12,13
//t.service.ts
getData(){
return new Observable(observer=>{
setTimeout(()=>{
observer.next(this.val++)
},2000)
})
}