我把我的angular升级到了ng7。我正在做一个项目,其中我有3个http调用,它们是相互依赖的,所以我选择使用switchMap。我的问题是,我以前编写switchMap的方式不起作用。这通常是我写它的方式
DeleteConfirm(id: number, $event) {
console.log('product');
this.productService.deleteProductById(
id).switchMap(productDeleted => this.productService.getProducts())
.subscribe(
products => {
this.products = products;
this.confirmDelete = false;
}, error2 => {}
);
$event.stopPropagation();}
下面的方法就是我现在正在使用的方法。对如何使用switchMap有什么建议吗?
createCompWithGroup(competitionName: string) {
return this.apiService.createACompetition(competitionName)
.pipe(switchMap(data => {
const competition = data['category'];
const competitionSlug = competition.id + '-' + competition.slug;
this.createSecurityGroup(competitionSlug).subscribe( data =>{
return this.addSecurityGroup(competitionName, competitionSlug)
}
}
));}
发布于 2018-10-25 18:27:24
这应该可以做到:
createCompWithGroup(competitionName: string) {
return this.apiService.createACompetition(competitionName).pipe(
switchMap(data => this
.addSecurityGroup(competitionName, `${data.cateogry.id}-${data.cateogry.slug}`)
)
)
}subscribe参数将是addSecurityGroup请求的响应。
https://stackoverflow.com/questions/52986815
复制相似问题