我有以下情况。
我有一个' URL'我想要获取但不能同时获取的路径。
我想获取第一个URL并在完成时(无论结果如何),获取第二个等等。我想在一个Observable中将结果显示为一系列事件。
我可以这样做吗?如何? 我的挣扎: 1. mergeMap-ing将同时启动URL 2.即使做了上面的1,我也很难将这种结构放在一个' for'循环。
我尝试过以下操作,但只提取了最后一个网址。
const myEvents: number[] = [1, 2, 3, 4, 5];
let finalobs = this.http.get(`https://jsonplaceholder.typicode.com/posts/${1}`);
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));
任何想法?
提前谢谢
答案 0 :(得分:1)
您正尝试在一组可观察对象上实现顺序订阅。 rxjs concat
可以帮助您实现这一目标。请考虑以下示例
var observables = [];
Observable
.concat(...observables)
.subscribe((result) => { /* do something with the result */},
(error) => { /* do something with the error response */ });