angular – RxJS 6 switchMap使用不推荐使用的符号

前端之家收集整理的这篇文章主要介绍了angular – RxJS 6 switchMap使用不推荐使用的符号前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经从Angular 5更新到Angular 6.现在我正在尝试更新我的代码以使其与RxJS 6兼容.
.pipe(
  map(job => job[0]),switchMap((job) => {
    return job ? this.bookingService.findByID(job.property.id) : Observable.empty();
  },(job: Job,bookings: Booking[]) => {
    this.mark_jobs_unavailable(job,bookings);
    return job;
  })
)

我在使用使用了Deprecated Symbol的switchMap时收到警告.

这些是我的导入:从’rxjs /运算符’导入{map,switchMap};

在v6中有没有其他方法可以使用switchMap?此外,如果我不更改我的代码rxjs-compat应该使我现有的代码工作(我已安装)但我得到以下错误相同的代码,但在RxJS 5样式:

.map(job => job[0])
.switchMap((job) => {
    return job ? this.bookingService.findByID(job.property.id) : Observable.empty();
},bookings);
    return job;
})

错误:预期1个参数但得到2.

作为switchMap的第二个参数给出的resultSelector函数deprecated.您需要删除它并使用map运算符实现目标.

这里最棘手的部分是决定放置地图运算符的位置.实际上地图运算符进入了作为switchMap参数提供的函数体内部.

没有结果选择器功能代码将类似于以下内容

.pipe(
          map(job => job[0]),switchMap((job) => {
            return (job ? this.bookingService.findByID(job.property.id) : Observable.empty()).pipe(

              // This is the mapping function provided as the alternative to the deprecated result selector function
              // This should be placed inside the body of the function which is the 1st (and only one) argument of switchMap
              map((bookings: Booking[])=>{
              this.mark_jobs_unavailable(job,bookings);
              return job;
            })

            );
          }     
         )
        )
原文链接:https://www.f2er.com/angularjs/141295.html

猜你在找的Angularjs相关文章