我有两个数组,它们是Angular 2中的一个HTTP响应,我需要将另外两个数组转换为test5,但我似乎无法将它们相加,还有其他任何想法吗?
this.test3 = this.http 获得(" adresssAPI1&#34)
this.test4 = this.http 获得(" adressAPI2&#34)
this.test5 = this.test 3 + this.test4
答案 0 :(得分:3)
使用Observable.combineLatest
或Observable.forkJoin
,查看他们之间的差异here。
Observable.combineLatest(this.test3, this.test4);
Observable.forkJoin(this.test3, this.test4);
当您订阅Observable.combineLatest
时,您将获得如下结果:
[response3, response4]
你可以使用Array.reduce
来组合这两个Observables'结果
// combineLatest
Observable.combineLatest(this.test3, this.test4)
.subscribe(res => {
this.concatResult = res.reduce((pre, next) => {
return [].concat(pre.json().data, next.json().data);
})
});
// forkJoin
Observable.forkJoin(this.test3, this.test4)
.subscribe(res => {
this.concatResult = res.reduce((pre, next) => {
return [].concat(pre.json().data, next.json().data);
})
});
参考 plunker demo