rxjs - Observer.error 没有发送错误
问题描述
我正在尝试在请求服务和订阅它的角度组件之间生成中间服务。为此,我从连接中间服务的 httpClient 请求生成一个 observable,并发送 HTTP 响应。
当响应到达中间服务时,我生成另一个与客户端组件连接的 observable。问题从这里开始。当我500
从请求中获得状态响应时,我在中间服务中获得了该响应,但是当我尝试使用 a 发送到客户端组件时,subscribe.error(err)
它会启动一个永不结束的循环,出现以下错误:
您在预期流的位置提供了无效对象。您可以提供 Observable、Promise、Array 或 Iterable。
我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();
}
}
解决方案
已经解决了。不幸的是,当我发现错误时我使用的是 return 而不是 throw,这就是控制台显示流错误的原因!
推荐阅读
- angular - 如何解决类型'Observable
' 不可分配给类型 'Observable '。类型“未知”不能分配给类型“字符串”? - python - 什么是 python 上下文中的`build`?
- fluentd - 从 fluentd 发送到 aws kinesis firehose 时数据丢失
- java - 如何使用 Java 将“多个二维数组”存储在单个文件中?
- pyspark - 使用 pyspark 到 Salesforce 的 Amazon S3
- zig - zig 结构、指针、字段访问
- kubernetes - 无法将 Docker CLI 连接到 minikube 内的远程 Docker 恶魔
- reactjs - 具有 Material UI React 的数据驱动选项卡
- java - 如何使用 JDBC/Java 访问和显示 MySQL 关系数据库中的特定记录?
- serialization - Solana Rust 程序 HashMap