jay*_*jay 2 http observable rxjs typescript angular
这是我在这里的第一个问题,如果不够详细,请见谅。
我希望按顺序发出动态数量的请求(可能很多)以获取数据,
我需要从每个请求中收集这些数据,并在最后一个请求结束时作为最终的 observable 返回。
我尝试使用forkJoin组合请求,虽然,这不会按顺序发出每个请求,然后concat在每个请求之后发出并观察到。
你想要:
我会concat在toArray这里结合使用。concat将按顺序运行请求,并toArray在所有响应可用时发出一个数组。
// some dynamic array
const source = [ 1, 2, 3, 4, 5 ];
const observables = source.map(x => this.http.get('some url'));
concat(
...observables
).pipe(
toArray()
).subscribe(responses => {
console.log(responses);
// array of results
});
Run Code Online (Sandbox Code Playgroud)
演示:https : //stackblitz.com/edit/angular-s1fdxj