有没有办法连接http响应数组,只在角度2的一个数组

时间:2017-05-25 03:30:44

标签: angular http

我有两个数组,它们是Angular 2中的一个HTTP响应,我需要将另外两个数组转换为test5,但我似乎无法将它们相加,还有其他任何想法吗?

this.test3 = this.http       获得(" adresssAPI1&#34)

this.test4 = this.http       获得(" adressAPI2&#34)

this.test5 = this.test 3 + this.test4

1 个答案:

答案 0 :(得分:3)

使用Observable.combineLatestObservable.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