Angular 如何返回父级可观察值?
我正在尝试使用mergeMap嵌套一些http请求。 我使用的API以部分(页面)的形式返回数据,因此我需要根据总页面数发出更多请求 因为我需要请求知道有多少页。我总是在第一页写第一个。根据这个结果,我可以知道有多少页,并开始提出其他请求(从第2页开始) 一旦我订阅了返回的observable,我就获得了mergeMap中所有请求的数据,除了第一个请求的结果(page=1的请求) 是否有方法返回第一个请求数据 我试图用page=1启动内部请求,但我不喜欢这样,因为我已经有了该请求的数据 这是函数的返回值:Angular 如何返回父级可观察值?,angular,rxjs,Angular,Rxjs,我正在尝试使用mergeMap嵌套一些http请求。 我使用的API以部分(页面)的形式返回数据,因此我需要根据总页面数发出更多请求 因为我需要请求知道有多少页。我总是在第一页写第一个。根据这个结果,我可以知道有多少页,并开始提出其他请求(从第2页开始) 一旦我订阅了返回的observable,我就获得了mergeMap中所有请求的数据,除了第一个请求的结果(page=1的请求) 是否有方法返回第一个请求数据 我试图用page=1启动内部请求,但我不喜欢这样,因为我已经有了该请求的数据 这是函数
返回此.getScrobblesFromAPI(用户名,oneWeekAgoUnix,1)
.烟斗(
合并映射(数据=>{
const totalPages:number=parseInt(数据['recenttracks']['@attr'].totalPages,10);
常量页:编号[]=[];
//从第2页开始
对于(设i=2;i this.getScrobblesFromAPI(用户名,oneWeekAgoUnix,第页)),
);
}),
地图(数据=>data['recenttracks']['track'].slice(1))
);
此函数返回http.get()的可观察值(HttpClient)
private getScrobblesFromAPI(用户名:字符串,发件人:编号,页码:编号){
//http:HttpClient
返回此.http.get('url¶ms');
}
我可以想出两种方法来解决这个问题:
return concat(
of(data),
from(pages).pipe(
mergeMap( page => this.getScrobblesFromAPI(userName, oneWeekAgoUnix, page)),
)
);
我尝试了第二个选项,但显然不能在合并映射中返回concat。您需要
从'rxjs'导入{concat}
,而不是从'rxjs/operators'导入{concat}
!非常感谢。成功了。“rxjs/operators”中的一个与“rxjs”中的一个有什么区别?