rxjs

一 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)
    })
}
相關文章
相關標籤/搜索