javascript - 将数组转换为 Observable 的类型
问题描述
我想将数组转换为类型Observable<T[]>
,并使用了 rxjs 方法“from”。但它返回Observable<T>
,有没有办法将数组转换为Observable<T[]>
?
Player: Observable<T[]>;
convert(){
let tempArr:T[] = Object.values(data) as T[];
let Obsobj = from(tempArr);
this.Player = Obsobj;
}
这是我收到的错误消息,
Observable<T>
不可分配给类型Observable<T[]>
编辑
即使使用以下代码片段返回类型并不符合预期。
let $sub = new Subject<Array<T>>();
$sub.next(tempArr);
this.Player$ = $sub.asObservable();
因为我希望返回的可观察类型如下。
Observable {_isScalar: false, source: Observable, operator: MapOperator}
但返回以下。
Observable {_isScalar: false, source: Subject}
编辑#2
完整的代码片段。
Player: Observable<B[]>;
convert(data: Dictionary<B>){
let tempArr:B[] = Object.values(data) as B[];
let $sub = new Subject<Array<B>>();
$sub.next(tempArr);
this.Player$ = $sub.asObservable();
}
这里有什么问题?有什么帮助吗?
解决方案
Observable.from 文档:对于数组和可迭代对象,所有包含的值都将作为序列发出!因此,您的项目将始终以 T 而不是 T[] 的形式发出
Observable<T[]>
执行以下任一操作:
$sub = new Subject<Array<T>>();
this.Player = $sub.asObservable();
或者
this.Player = of(array);
或者
Observable.create((observer) => {observer.next(array)})
推荐阅读
- mysql - 如何在 Docker 容器中部署 Spring Boot War 应用程序和 MySql 数据库
- airflow - 气流任务处于“已计划”状态并卡住
- bash - 是否有 shell 命令可以更改树莓派零的 SPI 时钟?
- python - 如何在一个图中叠加多个绘图类型(条形图+散点图),共享 x 轴
- python - 重新评估 NaN 的现有数据框
- python - 在 Pyspark 中读取 JSON 时文件中的尾随换行导致空行
- google-drive-api - 是否可以在预览模式下直接链接到谷歌驱动器文件夹?
- reactjs - 无法在 React 路由器链接中传递状态
- html - 如何在css中制作下拉菜单?
- webpack - 使用 Webpack 对模块进行延迟评估