【发布时间】:2021-09-09 08:24:30
【问题描述】:
我有两个函数,每当我在 ngOninit 中调用它们时,第二个函数总是在另一个函数之前被调用p>
getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition((position: Position) => {
if (position) {
console.log("Latitude: " + position.coords.latitude +
"Longitude: " + position.coords.longitude);
this.lat = position.coords.latitude;
this.lng = position.coords.longitude;
console.log(this.lat);
console.log(this.lat);
}
},
(error: PositionError) => console.log(error));
} else {
alert("Geolocation is not supported by this browser.");
}
}
}
所以我尝试先获取位置,然后调用 getWeatherByCordinates 方法
getWeatherByCoordinates(){
this.weatherService.getWeatherByLatAndLong(this.latitude,this.longitude).subscribe((res) =>{
console.log('res',res);
});
}
在 ngOninit 中是这样的
ngOnInit() {
this.getLocation();
this.getWeatherByCoordinates();
}
【问题讨论】:
-
请分享您获得的代码,以便我们为您提供帮助
-
刚刚做了,我认为问题出在导航器的 getCurentPosition 方法上,因为由于我无法订阅该方法,所以我只能在方法范围内使用纬度和经度,当我调用里面的服务时它工作得很好
标签: angular typescript asynchronous async-await