Tro*_*oyd 0 javascript rxjs angular
我有一个 fork join,可以从 10 个 http 源获取数据,并且运行良好。每个源的结构都是相同的。但是,我正在寻找的结果位于响应的“数据”属性中。我需要将所有结果放入单个对象数组中。
回复
{
data:[stuff],
included: [stuff],
version: 1.0
}
Run Code Online (Sandbox Code Playgroud)
代码
forkJoin(requestArray).subscribe(results => {
console.log(results);
});
Run Code Online (Sandbox Code Playgroud)
如何返回此 forkjoin 的结果,将每个响应的 data 属性中的所有数组合并到单个数组中?
所需输出
[{all-Data-Objects-In-An-Array}, ...]
Run Code Online (Sandbox Code Playgroud)
import { Component } from "@angular/core";
import { Observable } from "rxjs/Observable";
import "rxjs/add/observable/timer";
import "rxjs/add/operator/do";
import "rxjs/add/operator/take";
import "rxjs/add/operator/share";
import "rxjs/add/operator/shareReplay";
import { forkJoin } from "rxjs/observable/forkJoin";
import { of } from "rxjs/observable/of";
import { tap, map } from "rxjs/operators";
@Component({
selector: "my-app",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.css"]
})
export class AppComponent {
name = "Angular 5";
data1 = {
data: ["abc"],
version: 1.0
};
data2 = {
data: ["abc"],
version: 1.0
};
private init$: Observable<any>;
public ngOnInit() {
forkJoin(of(this.data1), of(this.data2))
.pipe(
map(results => results.reduce((all, itm) => all.concat(itm.data), []))
)
.subscribe(results => {
console.log(results);
});
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3280 次 |
| 最近记录: |