typescript 如何在angular中使用管道和合并Map时处理错误

e3bfsja2  于 2023-05-30  发布在  TypeScript
关注(0)|答案(1)|浏览(193)

我有下面的代码调用两个API。我如何处理其中的错误,如果第一个API调用中有任何错误,则不应调用第二个API。

this.userService.signUp(this.signUpForm.value.fullName, this.signUpForm.value.email, this.signUpForm.value.password)
        .pipe(mergeMap((res: any)=> 
          this.notificationService.sendVerificationEmail(res.email)))
        .subscribe((notificationResponse: any)=>{
            console.log(notificationResponse.message)
        })
i86rm4rw

i86rm4rw1#

您应该考虑使用switchMap而不是mergeMap
switchMap要求完成前一个可观察对象,然后才继续下一个可观察对象。

this.userService.signUp(this.signUpForm.value.fullName, this.signUpForm.value.email, this.signUpForm.value.password)
  .pipe(switchMap((res: any) => 
    this.notificationService.sendVerificationEmail(res.email)))
  .subscribe({
    next: (notificationResponse: any) => {
      console.log(notificationResponse.message)
    },
    error: (err: any) => console.error(err)
  })

相关问题