JavaScript async await 使用

0611163發表於2024-06-21

你習慣在js程式碼中使用async await嗎?
我經常在js程式碼中寫一些非同步方法,使用await呼叫的地方,如果方便修改成非同步方法,就修改成非同步方法,如下所示:

async setPosition(graphic, lng, lat) {
  this.lng = lng;
  this.lat = lat;
  if (graphic) {
    let height = await getHeightByLngLat(map, lng, lat);
    graphic.position = [lng, lat, height];
  }
}

但是,有些地方不方便把方法修改成非同步的,比如,沒辦法把建構函式寫成非同步的,那怎麼辦呢?
可以使用如下方法:

(async () => {
  let result = await getScene(this.sceneId);
})();

這個方法也有缺點,就是它不會等待返回結果,如果需要等待這個返回結果,就不能使用這種方法。

相關文章