Angular2:如何一次发出几个GET请求

pes*_*tov 2 ajax http promise angular

使用promise JS库(https://github.com/stackp/promisejs),我可以这样做:

promise.join([
    promise.get('/settings'),
    promise.get('/translations'),
    promise.get('/main-data')
]).then(function(results) {
    console.log(results);
});
Run Code Online (Sandbox Code Playgroud)

现在我需要使用Angular2来做到这一点.所以我做了一个有方法的服务getSettings,getTranslations等等-但我怎么join他们在使用该服务的组成部分?

(并以这样的方式加入它们,当且仅当所有请求都完成时 - 我将运行一个使用所有响应的功能?)

eko*_*eko 6

您可以使用forkJoin运算符

import {Observable} from 'rxjs/Rx';



//...some code

 Observable.forkJoin( 
    this.http.get('/settings').map((res:Response) => res.json()),
    this.http.get('/translations').map((res:Response) => res.json())
  )
  .subscribe(data => {
    console.log(data[0], data[1]);
  });
Run Code Online (Sandbox Code Playgroud)