错误处理 - 来自API的500记录angular5中的神秘错误

时间:2018-04-03 03:54:56

标签: angular error-handling

我正在使用Angular5。我认为这是一个简单的设置。我有一个组件注入一个调用API的SignupService。如果没有出错,一切正常。但是如果远程服务器返回错误(特别是我正在处理的是500,但任何错误应该类似)我想在客户端适当地处理它。不幸的是,我一直在catch处理程序中得到这个无用的错误:

  

“您提供了'未定义',其中包含预期的流。您可以提供   一个Observable,Promise,Array或Iterable。“

我觉得我缺少一些基本的东西,因为我的错误处理代码看起来与我在网上看到的其他代码示例类似。有人能指出我正确的方向吗?谢谢!

摘自signup.service.ts

public signup(value: SignupForm): Observable<TokenResponse | any> {
    return this.http.post<TokenResponse>(
      `${environment.AUTHENTICATION_API}/p/signup`,
      value,
      this.httpOptions
    )
  }

摘自signup.component.ts:

public signup(value: SignupForm): void {
    if (this.myForm.valid && !this.submitted) {
      this.submitted = true;
      // submit to API
      this.service.signup(value)
        .first()
        .finally(() => {
          this.submitted = false;
        })
        .subscribe(data => {
          // handle session/token stuff, this works fine.
        }, e => {
          console.log('got error', e);
        });
    }
  }

1 个答案:

答案 0 :(得分:0)

好吧,因为我预计这最终是一个愚蠢的事情,我有一个HTTP拦截器设置,如果500响应我没有正确返回Observable.throw(错误)回到调用者。添加使一切正常。