【发布时间】:2021-05-20 06:29:27
【问题描述】:
我有两个observables,每个你得到一个Dto的值:
this.about.aboutHeInfo().subscribe((heInfo: HemDto) => {
this.uiUtils.openDialogResizable({
hem: heInfo
}, true, AboutComponent).subscribe();
});
this.about.aboutPeInfo().subscribe((peInfo: PeoDto) => {
this.uiUtils.openDialogResizable({
peo: peInfo
}, true, AboutComponent).subscribe();
});
问题是,当创建两个可观察对象时,由于每个函数都创建一个 apenDialog,所以打开了两个屏幕,如何合并两个可观察对象并打开一个对话框?
这是我正在测试的合并:
const ob1 = this.about.aboutInfo().subscribe((heInfo: HemDto) => {
this.heInfo= back;
});
const ob2 = this.about.aboutQoInfo().subscribe((peInfo: PeoDto) => {
this.peInfo= people;
});
forkJoin([ob1, ob2]).subscribe(() => {
this.uiUtils.openDialogResizable({
back: this.heInfo,
people: this.peInfo
}, true, AboutComponent).subscribe();
});
【问题讨论】:
-
我已经尝试过
zip但在这种情况下我无法为 Dto 复制它并且它不起作用 -
我尝试过使用
merge、combineLatest和forkJoin,但我无法使用它们中的任何一个复制它以从Dto获取信息。我不知道您是否必须使用其他人,因为它是Angular 11。你知道在这种情况下该怎么做吗? -
你能把你试过的代码贴在代码里吗? (将其添加到问题本身以便我们提供帮助)