我是angular和rxjs世界的新手,我想实现以下目标, [卡片][1]
我有两个角度服务,它们返回可观察到的响应。
当我订阅第一项服务时,它返回一个包含3个网站网址的数组,请考虑res [3] = [xyz.com,abc.com,pqr.com]
接下来,我需要通过传递上面接收的URL来查询第二个服务,以从每个站点获取详细信息。
最后,对于每个站点,我都应该从我的第一项服务中收到响应,并从第二项服务中获得相关的详细信息。
喜欢
xyz.com ->> 访问过的用户, 访问过的用户名, 命中数 等等。
abc.com ->> 访问过的用户, 访问过的用户名, 命中数 等等。
pqr.com ->> 访问过的用户, 访问过的用户名, 命中数 等等。
任何帮助将不胜感激。
感谢C
答案 0 :(得分:0)
服务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);
});
}
}