Javascript 用于合并请求的URL的RxJS数组

Javascript 用于合并请求的URL的RxJS数组,javascript,angular,rxjs,reactive-programming,Javascript,Angular,Rxjs,Reactive Programming,我是RxJS的新手,想做以下工作(在第2部分): 从包含URL数组的服务器请求一些JSON 向每个URL发出请求 订阅所有这些请求的合并完成 目前,我的方法如下所示: load():void { this.http.get(SVG_LIST) .map(res => { return <Array<string>> res.json().files; })

我是RxJS的新手,想做以下工作(在第2部分):

  • 从包含URL数组的服务器请求一些JSON
  • 向每个URL发出请求
  • 订阅所有这些请求的合并完成
  • 目前,我的方法如下所示:

        load():void {
            this.http.get(SVG_LIST)
                .map(res => {
                    return <Array<string>> res.json().files;
                })
                .catch(this.handleError);
        }
    
    load():void{
    this.http.get(SVG_列表)
    .map(res=>{
    返回res.json()文件;
    })
    .接住(这个.把手错误);
    }
    

    map
    方法上我应该链接什么?

    您正在寻找与
    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);
        }
    
    load():void{
    this.http.get(SVG_列表)
    .map(res=>{
    返回res.json()文件;
    })
    .flatMap(files=>Rx.Observable.forkJoin(files.map(makeRequest)))
    .接住(这个.把手错误);
    }
    
    文件
    是一个url数组时,
    makeRequest
    是一个函数,它接受一个url并返回一个可观察或承诺