Ionic2中有多个$ http请求

时间:2016-08-09 05:37:45

标签: http angular typescript request ionic2

我想知道是否有多个请求:

如果我的$http request 1开始,请说$http request 1结束并尝试拨打$http request 2我的问题如何创建多个请求?

例如:致电$http request 1然后$http request 2

1 个答案:

答案 0 :(得分:4)

据我了解,您尝试制作多个http请求,然后在所有请求结束时处理响应。例如,您可能需要从多个源加载数据,并延迟后加载逻辑,直到所有数据都已加载。

如果是这种情况,您可以使用ReactiveX Observables,因为它提供了一个名为forkJoin()的方法来包装多个Observable。

import {Injectable} from '@angular/core';
import {Http, Response} from '@angular/http';
import {Observable} from 'rxjs/Rx';

@Injectable()
export class MultipleHttpService {

  constructor(private http:Http) { }

  // If any single request fails, the entire operation will result in an error state.
  getData0AndData1() {
    return Observable.forkJoin(
      this.http.get('/app/data0.json').map((res:Response) => res.json()),
      this.http.get('/app/data1.json').map((res:Response) => res.json())
    );
  }

}

然后你可以通过订阅这个observable获得所有数据:

// Code in your page ...
this.myMultipleHttpService.getData0AndData1()
    .subscribe(
      data => {
        this.data0= data[0]
        this.data1 = data[1]
      },
      err => console.error(err)
    );