订阅角度为 6 的可观察响应数组中的多个可观察量

  • 本文关键字:观察 数组 响应 angular
  • 更新时间 :
  • 英文 :


我是 angular 和 rxjs 世界的新手,我想实现以下目标, [卡片][1]

我有两个角度服务,返回可观察的响应。

当我订阅第一个服务时,它会返回一个包含 3 个站点 url 的数组,请考虑 res[3]=[xyz.com、abc.com、pqr.com]

接下来,我需要通过传递上面收到的 url 来查询第二个服务,以从每个站点获取详细信息。

最后,我应该从我的第一个服务收到响应,以及我从每个站点的第二个服务中获得的相关详细信息。

喜欢

xyz.com->>访问的用户, 访问的用户名, 命中数, 等等....

abc.com->>访问的用户, 访问的用户名, 命中数, 等等....

pqr.com->>访问的用户, 访问的用户名, 命中数, 等等....

任何帮助将不胜感激。

谢谢C

服务 1:

import { HttpClient } from '@angular/common/http';
@Injectable()
export class Services1 {
constructor(private http: HttpClient){}
getSitesList(): Observable<any>{
return this.http.get('https://url')
.map(data => {
console.log(data);
});
}
}

服务2:

import { HttpClient } from '@angular/common/http';
@Injectable()
export class Services2 {
constructor(private http: HttpClient){}
getSitesDetailsList(sites): Observable<any>{
const observableBatch = [];
sites.forEach((siteName)=> {
if (siteName) {
observableBatch.push(this.getSitesDetails(siteName));
}
});
return Observable.forkJoin(observableBatch);
}
getSitesDetails(name): Observable<any>{
return this.http.get('url/name')
.map(data => {
console.log(data);
});
}
}

最新更新