大家好,在我的情况下,我有一个包含多个选择类型的表单,这些输入的选项来自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
});
}