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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理