我有兩個函式,每當我在ngOninit中呼叫它們時,第二個函式總是在另一個函式之前被呼叫,誰能解釋一下在這種情況下如何使用async/await,并舉一個簡單的例子
getLocation(){
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition((position: Position) => {
if (position) {
console.log("latitude: " position.coords.latitude
"經度。" 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) =>/span>{
console.log('res',res)。
});
}
在ngOninit中像這樣
ngOnInit() {
this.getLocation()。
this.getWeatherByCoordinates()。
}
uj5u.com熱心網友回復:
getLocation() {
return new Promise((resolve, reject) => /span>{
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition((position: Position) => {
if (position) {
console.log("latitude: " position.coords.latitude
"經度。" position.coords.longitude)。)
this.lat = position.coords.latitude。
this.lng = position.coords.longitude。
console.log(this.lat) 。
console.log(this.lat) 。
resolve({
lat:position.coords.latitude。
lng:position.coords.longitude。
})
}
},
(error: PositionError) => reject(error) )。
} else {
alert("Geolocation is not supported by this browser." )。
}
});
}
async ngOnInit() {
await this.getLocation()。
this.getWeatherByCoordinates()。
}
或者可以在這種情況下使用回呼
getLocation(callback) {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition((position: Position) => {
if (position) {
console.log("latitude: " position.coords.latitude
"經度。" position.coords.longitude)。)
this.lat = position.coords.latitude。
this.lng = position.coords.longitude。
console.log(this.lat) 。
console.log(this.lat) 。
callback()
}
},
(error: PositionError) => console.log(error)) 。
} else {
alert("Geolocation is not supported by this browser." );
}
}
}
ngOnInit() {
this.getLocation(this.getWeatherByCoordinates() )。)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/318057.html
標籤:
上一篇:使用JavaScript創建imgsrc回傳損壞的img
下一篇:在狀態更改時更新組件-REACT
