[英]how to replace subscribe by mergeMap or switchMap?
I want to replace subscribe in subscribe by switchMap, i dont know how to do that.我想用switchMap替换订阅中的订阅,我不知道该怎么做。 I need 1 example, but i didn't find it on the Internet.我需要 1 个示例,但我没有在 Internet 上找到它。
dialogRef.afterClosed().pipe(filter(result => !!result)).subscribe(result => {
result.owner = this.user.id;
proj._newname = result.name;
proj.name = result.name;
this.projectService.updateProject(proj, result.name)
.subscribe(project => {
const pw = new ProjectWorker({
approve: true,
worker: this.user.id,
project: project.id,
admin: true,
write: true
});
this.projectService.createProjectWorker(pw).subscribe(_ => {
this.getProjects();
});
},
err => {
this._snackbar.open('Project already exist', 'error', {
panelClass: 'snackbar-error'
})
});
}
);
Something like this:像这样的东西:
dialogRef.afterClosed().pipe(
filter(result => !!result),
switchMap((result) => {
result.owner = this.user.id;
proj._newname = result.name;
proj.name = result.name;
return this.projectService.updateProject(proj, result.name);
}),
switchMap((project) => {
const pw = new ProjectWorker({
approve: true,
worker: this.user.id,
project: project.id,
admin: true,
write: true
});
return this.projectService.createProjectWorker(pw);
}),
).subscribe(
res => this.getProjects(),
err =>
this._snackbar.open('Project already exist', 'error', {
panelClass: 'snackbar-error'
})
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.