我正在编写一个代码,该代码将获取一组Urls,当成功获取它们时,将在其中构造一个端点,并调用一个API,该API将适当地返回数据。我正在尝试做的事情大致像这样
getUrls(): Subscription {
return this.common.getUrls().subscribe((data) => {
this.urls = data;
},
(error) => { },
(): Observable<any> => {
const _getUrl = this.urls.baseUrl + this.urls.someEndpoint;
return this.http.get<any>(_getUrl);
}
);
}
我不确定这是否是解决上述问题的正确方法。请建议如何做。
答案 0 :(得分:0)
可观察对象是流,因此我建议您将调用链接起来,而不要遵循基于承诺的链接,我不确定代码的工作方式,但与此类似的东西应该可以工作。
getUrls()
.map(data=> data.urls)
.switchMap(urls => {
const _getUrl = this.urls.baseUrl + this.urls.someEndpoint;
return this.http.get<any>(_getUrl);
}).subscribe(urlResponse => {
// do whatever with this response
});
请避免将可观察变量放在其他可观察变量之内,我也没有测试上面的行,但是我敢肯定它会为您指明正确的方向。