所以我有3个可观察值:updateCustomUserData $,updateEmail $,updatePassword $。 和profileEditForm。 如果表单的适当字段已更改,我需要更新配置文件数据; 我认为它应该像这样:
updateCustomUserData$(data) {
return iif(() => customDataWasChanged(), apiService.updateCustomUserData())
}
// updateEmail$ and updatePassword$ is similar
onSubmit() {
this.updateCustomUserData$(formData).pipe(
concatMap(() => this.updateEmail$(newEmail))),
concatMap(() => this.updatePassword$(newPassword),
)
.subscribe(() => doSomething())
}
但是它不起作用。如果自定义数据未更改,并且密码或电子邮件没有更改-updateEmail和updatePassword未执行。 有人可以帮忙吗? 附言对不起,我的英语:)
答案 0 :(得分:0)
何时调用onSubmit方法?
我认为您应该定义ngOnInit而不是onSubmit。
export class AppComponent implements OnInit {
ngOnInit() {
this.updateCustomUserData$(formData).pipe(
concatMap(() => this.updateEmail$(newEmail))),
concatMap(() => this.updatePassword$(newPassword),
)
.subscribe(() => doSomething()) }
}