javascript - 角度组合来自不同方法的数据
问题描述
我有来自三个不同服务的数据,我想将来自所有服务的数据组合成一种方法
this.data1 = this.activity1Service.getAllMonth();
this.data2 = this.activity2Service.getAllMonth();
this.data3 = this.activity3Service.getAllMonth();
this.alldata = concat (this.data1,this.data2,this.data3);
并作为 Observable 调用
GetAllData(): Observable<Data[]>{
return (this.alldata);
}
然后也许做 ngOnInit()
ngOnInit() {
this.dataService.getAllData().subscribe(aldata => this.AllData = aldata);
}
我不确定如何将来自不同服务的数据组合成一种方法,任何人都可以帮忙。
解决方案
我想你想要这样的东西:
import { Observable, combineLatest } from 'rxjs';
import { map } from 'rxjs/operators';
getAllData(): Observable<any[]>{
return combineLatest([
this.activity1Service.getAllMonth(),
this.activity2Service.getAllMonth(),
this.activity3Service.getAllMonth()
]).pipe(map([data1, data2, data3] => [...data1, data2, data3]))
}
combineLatest
将结合每个可观察到的最新发出的值,同时map
您可以有一些逻辑来根据需要映射数据。
推荐阅读
- statistics - 仅使用 x 轴变量匹配两个直方图的算法
- c# - xamarin 表单图像不显示
- kendo-ui - Kendo UI 将 datePicker 绑定到列
- amazon-web-services - AWS System Manager 启动会话:调用 StartSession 操作时发生错误 (TargetNotConnected):
未连接 - java - 具有泛型约束的 C# 方法重载
- c# - C# 中的字段不能是通用的吗?
- ansible - ansible:我没有收到任务的完整错误消息
- jquery - $(...).intercode 不是函数 Phone.js
- amazon-web-services - Terraform - 启用访问负载均衡器日志 InvalidConfigurationRequest:存储桶的访问被拒绝
- javascript - “不可迭代”使用钩子从单独的文件夹进行 API 调用