在另一个可观察的事件Angular上返回可观察的值

时间:2019-01-14 11:46:46

标签: angular observable

我正在编写一个代码,该代码将获取一组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);
  }
);

}

我不确定这是否是解决上述问题的正确方法。请建议如何做。

1 个答案:

答案 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
});

请避免将可观察变量放在其他可观察变量之内,我也没有测试上面的行,但是我敢肯定它会为您指明正确的方向。