这是我的技术栈
角度-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数组,因此无法将其静态添加。
我应该更改我的代码吗?
答案 0 :(得分:1)
您需要散布数组
forkJoin(...this.reqArray)