-2

I have a simple question as I see it, I just don't have enough experience with Rx.

ngOnInit() {
this.agentService.getAllAgents().subscribe((agents: Agent[]) => {
  this.agents = agents.sort((x: Agent, y: Agent) =>
    Number(new Date(x.date)) - Number(new Date(y.date)));

  for (const agent of this.agents) {
    forkJoin(this.geoLocator.find(agent.address)).subscribe(results => {
      for (const coordinates of results) {
        agent.distance = this.getDistance(<Coordinates>environment.google.COORDINATES, coordinates, Unit.km);
      }
    });
  }
  console.log(this.agents[0]);
  console.log(JSON.stringify(this.agents[0]); 
});

}

enter image description here

This is the result I get.

The question is how and why?

hackp0int
  • 4,052
  • 8
  • 59
  • 95

1 Answers1

0

 public find(agent: Agent): Observable<Agent> {
    return this.http.get<Agent>(`${environment.google.BASE_URL}${agent.address}`)
      .map(response => {
        const coordinates = <Coordinates> {
          latitude: response['results'][0].geometry.location.lat,
          longitude: response['results'][0].geometry.location.lng
        };
        agent.distance = this.getDistance(<Coordinates>environment.google.COORDINATES, coordinates, Unit.km);
        return agent;
      });
  }
hackp0int
  • 4,052
  • 8
  • 59
  • 95