有条件的可观测链

时间:2020-08-16 08:43:26

标签: angular rxjs iif concatmap

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

1 个答案:

答案 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())  }
}
相关问题