如何对具有不同数据类型和逻辑的多个可观测值进行排序运行



大家好,在我的情况下,我有一个包含多个选择类型的表单,这些输入的选项来自API,然后将从HTTP请求发出的数据提供给我的FormGroup,现在一切都很好。

然后决定在我的应用程序中添加编辑功能,这样用户就可以使用相同的组件编辑相关实体。所以我需要一个接一个地运行两个可观察的,我需要第一个完成才能运行另一个。

这意味着我需要从我的服务调用getFormFieldData,将其发出的值馈送到我的formGroup,然后在此之后,我需要调用getUserEntityData(),并将其发送的数据馈送到该用户可以开始编辑之后的formGroup初始值。

必须有一个rxjs运算符才能做到这一点。我读过一些关于concat的文章,但我发出的数据类型不同,逻辑也不同。

感谢tnx帮助我。

你在高层寻找switchMap,它看起来像

doAction() {
// disable form
this.service.getFormFieldData().pipe(
switchMap((response) => {
this.formGroup.patchValue(response);
return this.service.getUserEntityData().pipe(
map((response2) => {
this.formGroup.patchValue(response2);
})
);
})
).subscribe(() => {
// enable form
});
}

最新更新