我正在使用angular5。我认为我认为是一个简单的设置。我的组件注入了一个调用API的注册服务。如果没有任何问题,这一切都很好。但是,如果远程服务器返回错误(特别是我现在正在处理的500是500,但任何错误都应该相似(,我想在客户端适当地处理它。不幸的是,我一直在接管处理程序中遇到这个无用的错误:
"您提供了预期流的"未定义"。您可以提供 可观察的,承诺,数组或觉得。"
我觉得我缺少一些基本的东西,因为我的错误处理代码看起来与我在网络上看到的其他代码示例相似。有人可以将我指向正确的方向吗?谢谢!
摘录摘自Inbisup.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);
});
}
}
好的,正如我所期望的那样,这最终是一件愚蠢的事情,我设置了HTTP Interceptor,如果有500个响应,我无法正确返回可观察的。致呼叫者。添加使一切正常工作。