以下是一个简化的场景:
of([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
.pipe(
map((data) => {
let arr: Observable<any>[] = [];
for (let elem of data) {
let obj = {
title: 'foo' + 'elem',
body: 'bar' + 'elem',
userId: elem,
};
arr.push(
this.http.post(
`https://jsonplaceholder.typicode.com/posts`,
obj,
{
headers: {
'Content-type': 'application/json; charset=UTF-8',
},
}
)
);
}
return arr;
}),
concatMap((data) => forkJoin([...data])),
)
.subscribe((data) => console.log(data));
我的理解是,在这种情况下,所有请求都将被并行激发,因为这就是forkJoin([...data])
所做的.我正在try 弄清楚如何才能在前一个请求完成(成功或失败,无关紧要)的情况下才能触发请求.
如有任何建议或帮助,我将不胜感激.谢谢.