我使用的角度7.这是我的服务。
get(){
return this.http.post(this.url).pipe(
catchError(this.handleError)
)
}
这是错误处理代码。
handleError(errorResponse: HttpErrorResponse) {
if (errorResponse.error instanceof ErrorEvent) {
return throwError(errorResponse.error.message)
} else {
switch (errorResponse.status) {
case 400:
return throwError(errorResponse.error.message)
case 401:
return throwError(errorResponse.error.message)
case 409:
return throwError(errorResponse.error.message)
case 500:
return throwError(errorResponse.error.message)
}
}
}
这是当按下提交按钮时,我收到错误。
core.js:15714 ERROR TypeError: You provided 'undefined' where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.
at subscribeTo (subscribeTo.js:41)
at subscribeToResult (subscribeToResult.js:11)
at CatchSubscriber.push../node_modules/rxjs/_esm5/internal/operators/catchError.js.CatchSubscriber.error (catchError.js:43)
at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._error (Subscriber.js:79)
at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.error (Subscriber.js:59)
at FilterSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._error (Subscriber.js:79)
at FilterSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.error (Subscriber.js:59)
at MergeMapSubscriber.push../node_modules/rxjs/_esm5/internal/OuterSubscriber.js.OuterSubscriber.notifyError (OuterSubscriber.js:13)
at InnerSubscriber.push../node_modules/rxjs/_esm5/internal/InnerSubscriber.js.InnerSubscriber._error (InnerSubscriber.js:18)
at InnerSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.error (Subscriber.js:59)
请帮我在这种情况下。
这是一个错误,说明您没有在您的观察到提供的流。
这通常发生在你不提供可观察到运营商如switchMap
,combineLatest
,或在这种情况下,catchError
。
只需添加一个
return of(undefined);
在catchError
来解决问题。
你是返回从catchError运营商不确定的。该catchError运营商期望你返回一个可观察的。
get(){
return this.http.post(this.url).pipe(
catchError((err) => {
// handle the error
// use the empty() factory method to return an observable
// that emits nothing and completes
return empty();
})
)
}
参考:empty