有条件的可观测链

问题描述

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

解决方法

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

export class AppComponent implements OnInit {
  ngOnInit() {
    this.updateCustomUserData$(formData).pipe(
      concatMap(() => this.updateEmail$(newEmail))),concatMap(() => this.updatePassword$(newPassword),)
    .subscribe(() => doSomething())  }
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...