0

所以我有 3 个 observables: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 未执行。有人可以帮忙吗?PS对不起我的英语:)

4

1 回答 1

0

何时调用 onSubmit 方法?
我认为您应该定义 ngOnInit 而不是 onSubmit。

export class AppComponent implements OnInit {
  ngOnInit() {
    this.updateCustomUserData$(formData).pipe(
      concatMap(() => this.updateEmail$(newEmail))),
      concatMap(() => this.updatePassword$(newPassword),
    )
    .subscribe(() => doSomething())  }
}
于 2020-08-16T09:20:57.370 回答