我是 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);
});
}
}