【发布时间】:2021-05-10 06:16:15
【问题描述】:
有什么更好的替代方法来简化下面的嵌套代码?该代码确实有效,但我确实知道嵌套订阅并不是我所读到的。我也不确定在这个特定示例中是否应该使用 mergeMap() 或 switchMap()。
private subscriptions: Subscription = new Subscription();
ngOnInit() {
this.subscriptions.add(this._route.paramMap.subscribe((paramMap: ParamMap) => {
if (this.docType === 'invoice' && paramMap.has('invoiceId')) {
this.mode = 'edit';
this.subscriptions.add(this._invoiceService.getInvoice(this.invoiceId).subscribe(invoiceData => {
//something here}));
}
else if (this.docType === 'quote' && paramMap.has('quoteId')) {
this.mode = 'edit';
this.subscriptions.add(this._quoteService.getQuote(this.quoteId).subscribe((invoiceData) => {//do something
}));
}
else {
//do something
this.subscriptions.add(this._route.params.subscribe(params => {
this.relatedProjectId = params['projectId']
}));
this.subscriptions.add(this._companyService.getCompany().subscribe(
res => {
this.showOwnCompany(res);
}
))
}
}
));
this.isOpen = true;
}
【问题讨论】:
标签: angular rxjs nested observable subscription