forkJoin无法在Angular 6中使用URL和POST对象的动态数组

时间:2019-03-08 06:40:16

标签: angular rxjs fork-join

这是我的技术栈

角度-6.1.2

TypeScript-2.7.2

rxjs-6.2.2

这是我在Angular中的forkJoin方法的代码。发布请求在后端被调用。但是这些参数没有被传递。

  import { Observable } from 'rxjs';
  import 'rxjs/add/observable/forkJoin';

        reqArray = [];

        for (let i = 0; i < this.array.length; i++) {

            if(array[i]==true)
            {
                let obj = { name: 'Test', status: array[i] };

                this.reqArray.push(this.http.post(url, { params: obj }).pipe(map((res: Response) => res)));

            }

      }




forkJoin(this.reqArray).subscribe(
       data => {


            console.log(data);

       },
       err => console.error(err)
    );

也尝试过这种方法,但是我得到了相同的答复。

    Observable.forkJoin(this.reqArray).subscribe(
       data => {

             console.log(data);

       },
       err => console.error(err)
    );

当我以静态方式传递没有for循环的数据时,它工作正常。

    forkJoin(
        this.http.get(url, { params: obj }).pipe(map((res: Response) => res)),
        this.http.get(url, { params: obj2 }).pipe(map((res: Response) => res)),
        this.http.get(url, { params: obj3 }).pipe(map((res: Response) => res)),
        this.http.get(url, { params: obj4 }).pipe(map((res: Response) => res))

    ).subscribe(
        data => {

            console.log(data);

        });

但是,在我的情况下,我将不得不基于一些条件创建URL数组,因此无法将其静态添加。

我应该更改我的代码吗?

1 个答案:

答案 0 :(得分:1)

您需要散布数组

forkJoin(...this.reqArray)