【发布时间】:2020-11-25 23:45:00
【问题描述】:
我有一个对话框,我订阅了它的 afterclosed() 方法,如果结果为真,我调用另一个服务并订阅它。
我不想在订阅中进行订阅。
写它的更好方法是什么?我想 Rxjs 运营商可以提供帮助,但如何以及为什么它更好?
dialog.afterClosed().subscribe((result) => {
if (result) {
this.projectService.deleteProject(name).subscribe(
() => {
this.getProjects();
},
(error) => {
this.alertify.error(error);
}
);
}
});
【问题讨论】:
-
使用 switchMap 可能吗? dialog.afterClosed().pipe(switchMap(name => this.getProjects())).subscribe()
-
感谢您的评论,但您能否将代码清晰并解释一下。我是 Rxjs 新手,所以它会更有帮助。
-
mergeMap似乎做了最少的假设。switchMap的语义似乎不适用
标签: angular typescript rxjs