RxJS要合并的GET请求的URL数组

时间:2016-02-24 21:09:38

标签: javascript angular rxjs reactive-programming

我是RxJS的新手,想要做以下事情(在Angular 2中):

  1. 从包含url数组的服务器请求一些JSON
  2. 向每个网址发出请求
  3. 订阅所有这些请求的合并完成
  4. 目前我的方法看起来像这样:

        load():void {
            this.http.get(SVG_LIST)
                .map(res => {
                    return <Array<string>> res.json().files;
                })
                .catch(this.handleError);
        }
    

    我将哪些链接到map方法?

1 个答案:

答案 0 :(得分:2)

您正在寻找等同于Promise.all的运算符forkJoin。你可以尝试类似的东西:

load():void {
        this.http.get(SVG_LIST)
            .map(res => {
                return <Array<string>> res.json().files;
            })
            .flatMap(files => Rx.Observable.forkJoin(files.map(makeRequest)))
            .catch(this.handleError);
    }

其中files是一个url数组,makeRequest是一个接受url并返回observable或promise的函数。