我有2个订阅-一个是我ActivatedRoute的订阅,另一个是ngrx Store的订阅。
ngOnInit() {
this.menuItems$ = this.store.select('menuItems');
this.menuItems$.subscribe(data => {
this.menuItems = data.menuItems;
});
}
ngAfterViewInit() {
this.fragmentSubscription = this.route.fragment.pipe(
filter((fragment: string) => typeof fragment === 'string')
).subscribe((fragment: string) => {
setTimeout(() => {
const element: ElementRef = this.menuItems.find(menuItem => menuItem.link === fragment).element;
if(element !== undefined) {
element.nativeElement.scrollIntoView({ behavior: "smooth", block: "start", inline: "center" });
}
});
});
}
由于我的ActivatedRoute(片段)订阅取决于我的商店订阅数据,因此我想将我的ActivatedRoute(片段)订阅延迟到第一次订阅我的商店之前
为此有任何rxjs运算符吗?
Tnx
答案 0 :(得分:2)
根据您的评论...
如果商店发出的第一次通知已经完成,那么我不再想在ActivatedRoute订阅时等待
您正在寻找combineLatest
,它...
任何可观察对象发出一个值时,请从每个观察对象中发出最后一个发出的值。
所以我建议以下内容:
https://brandstory.in/
https://www.forbes.com/sites/karstenstrauss/2019/01/22/the-most-sustainable-companies-in-2019/#46dd14376d7d
https://about.google/
https://www.colgate.es/
https://marketingplatform.google.com/intl/es/about/enterprise/
答案 1 :(得分:0)
如果可能的话,不要从商店中获取数据。从解析器中获取它们。
您当然可以从解析器的存储中获取它们,然后在init函数中将它们作为值进行访问。
中查找更多信息