Rxjs Observer.error未发送错误

Rxjs Observer.error未发送错误,rxjs,Rxjs,我试图在请求服务和订阅它的角度组件之间生成一个中间服务。为了实现这一点,我从httpClient请求生成一个可观察的连接到中间服务的请求,并发送HTTP响应 当响应到达中间服务时,我生成另一个与客户机组件连接的可观察对象。 问题从这里开始。当我从请求中获得500状态响应时,我会在中间服务中得到该响应,但当我尝试使用subscribe.error(err)发送到客户机组件时,它会启动一个永不结束的循环,出现以下错误: 您提供了一个无效的对象,其中需要流。您可以提供一个可观察的、承诺的、数组的或可观

我试图在请求服务和订阅它的角度组件之间生成一个中间服务。为了实现这一点,我从httpClient请求生成一个可观察的连接到中间服务的请求,并发送HTTP响应

当响应到达中间服务时,我生成另一个与客户机组件连接的可观察对象。 问题从这里开始。当我从请求中获得
500
状态响应时,我会在中间服务中得到该响应,但当我尝试使用
subscribe.error(err)
发送到客户机组件时,它会启动一个永不结束的循环,出现以下错误:

您提供了一个无效的对象,其中需要流。您可以提供一个可观察的、承诺的、数组的或可观察的

我在请求服务和中间服务中使用相同的
observer.error(err)
,它只在请求中正确工作

Request: 
Observable.create((observer: Observer<any>) => 
this.httpClient
        .request(httpRequest)
        .subscribe(
...
(res: HttpErrorResponse) => {
            observer.error(res);
            observer.complete();
          },
          () => {
            observer.complete();
          },
}
Intermediate Service:
Observable.create((observer: Observer<any>) => 
this.requestService.request(requestServiceOptions).subscribe(
...
    (err: HttpErrorResponse) => {
            if (err.status === 401) {
              this.callbackWhenRequestFails();
            } else {
              observer.error(err);
              observer.complete();
            }
    }
请求:
可观察。创建((观察者:观察者)=>
这个是.httpClient
.request(httpRequest)
.订阅(
...
(res:HttpErrorResponse)=>{
观测误差(res);
observer.complete();
},
() => {
observer.complete();
},
}
中间服务:
可观察。创建((观察者:观察者)=>
this.requestService.request(requestServiceOptions).subscribe(
...
(错误:HttpErrorResponse)=>{
如果(错误状态===401){
此.callbackwhenRequestFailes();
}否则{
观察者错误(err);
observer.complete();
}
}
它已被解决。 不幸的是,当捕获错误时,我使用的是return而不是throw,这就是为什么控制台显示流错误