Есть сервис который получает координаты месторасположения юзера. Я вызываю этот сервис в другом сервисе, вытаскиваю координаты и сохраняю в глобальных переменных. Затем я использую эти переменные для формирования урл для запроса на сервер. Но в консоле я получаю ошибку, так как эти глобальные переменные undefined.
Подскажите если не трудно что я делаю не так. Заранее спасибо.
// service for get coords
@Injectable()
export class GoogleMapsSettingsService {
constructor() {}
getUserLocation(): Observable<any> {
return Observable.create (observer => {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(position => {
observer.next(position);
observer.complete();
console.log(position);
}, error1 => {
this.getUserDefaultLocation();
});
}
});
}
// second service for http request
@Injectable()
export class ConnectionService {
baseUrl = 'https://SITE.com/';
private lang$: string;
private step$ = 1;
private latitude$: number;
private longitude$: number;
private radius$ = 5;
constructor (private http: HttpClient, private systemTranslateService: SystemTranslateService, private googleMapsService: GoogleMapsSettingsService)
{
this.googleMapsService.getUserLocation().subscribe(data => {
this.latitude$ = data.coords.latitude;
this.longitude$ = data.coords.longitude;
});
}
}
// получаю undefined вместо this.longitude$ // и this.latitude$
getDepartmentByLocation(): Observable<any> {
return this.http.get(this.baseUrl + 'step/' + this.lang$ + '/' + this.step$ + '/area/' + this.latitude$ + '/' + this.longitude$ + '/' + this.radius$);