在回调代码运行后订阅另一个可观察量'router.events'



我已经订阅了router.events,但它还没有完成,因为我想一直监听并在每次url更改时发出:

this.router.events
.filter(event => event instanceof NavigationEnd)
.startWith({})
.pairwise()
.subscribe((events: [NavigationEnd, NavigationEnd]) => {
if (
this.breadcrumbs.length > 0 &&
events[0].url &&
events[0].url.split("?")[0] === events[1].url.split("?")[0]
) {
return;
}
//set breadcrumbs
let root: ActivatedRoute = this.activatedRoute.root;
this.breadcrumbs = this.getBreadcrumbs(root);
this.checkSetIsHomePage();
this.setBreadcrumbHeight();
});

但我希望每次执行上面的代码后,我的另一个自定义可观察到的东西都会发出,我的其他可观察的订阅如下:

this.breadcrumbService.additionalBreadcrumbs
.takeUntil(this.destroy$)
.subscribe(breadcrumb => {
if (breadcrumb.index) {
this.breadcrumbs.splice(breadcrumb.index, 0, breadcrumb);
} else {
this.breadcrumbs.push(breadcrumb);
}
this.setBreadcrumbHeight();
});

有没有一种方法可以在不取消订阅router.events的情况下做到这一点?

我相信您正在寻找的是concatMaphttps://www.learnrxjs.io/learn-rxjs/operators/transformation/concatmap

最新更新