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

你可能感兴趣的:(rxjs)