以链接模式获取一组 url

Fetching an array of urls in chaining mode

我有以下情况。

我有一组 'URL' 个路径,我想获取但不是同时获取。

我想获取第一个 URL 并在完成时(无论结果如何)获取第二个等等。我想将结果作为单个 Observable 中的一系列事件呈现。

我可以这样做吗?如何? 我的奋斗: 1. mergeMap-ing 将同时启动 URLs 2. 即使执行上面的 1,我也很难将此结构放入 'for' 循环中。

我尝试了以下方法,但只提取了最后一个 URL。

const myEvents: number[] = [1, 2, 3, 4, 5];
let finalobs = this.http.get(`https://jsonplaceholder.typicode.com/posts/`);
for (let i = 1; i < myEvents.length; i++) {
  finalobs = finalobs.pipe(
    mergeMap(evt => {
      console.log(`Getting: ${i}`);
      return this.http.get(`https://jsonplaceholder.typicode.com/posts/${myEvents[i]}`);
    })
  );
}
finalobs.subscribe(evt => console.log(evt));

有什么想法吗?

提前致谢

您正在尝试实现对一组可观察对象的顺序订阅。 rxjs concat 可以帮助您实现这一目标。考虑以下示例,

var observables = [];
Observable
    .concat(...observables)
    .subscribe((result) => { /* do something with the result */},
               (error) => { /* do something with the error response */ });
Rx.Observable.from([1, 2, 3, 4, 5])
  .concatMap(event => this.http.get(`https://jsonplaceholder.typicode.com/posts/${event}`))
  .subscribe(console.log);