คํามั่นสัญญา

เมธอดแบบอะซิงโครนัสทั่วทั้ง Google Maps JavaScript API จะแสดงผลพรอมิส

การสนับสนุน

API เมธอดแสดงผล Promise
เส้นทาง ใช่
เมทริกซ์ระยะทาง ใช่
ระดับความสูง ใช่
โปรแกรมแปลงพิกัดภูมิศาสตร์ ใช่
ภาพแบบซูมสูงสุด ใช่
สถานที่ ไม่ได้
บริการเติมข้อความอัตโนมัติเกี่ยวกับสถานที่ บางส่วน1
Streetview ใช่

การใช้งาน

ดู คู่มือ เกี่ยวกับการใช้ Promises หรือตัวอย่างด้านล่างสำหรับการเรียกใช้เมธอดแบบไม่พร้อมกัน ด้วย Google Maps JavaScript API

การทำงานแบบไม่พร้อมกันและ await

โอเปอเรเตอร์ await ใช้เพื่อรอ Promise ใช้ได้เฉพาะภายในฟังก์ชันที่ทำงานแบบแอสซิงค์เท่านั้น

const app = async () => {
  const elevationService = google.maps.ElevationService();
  const locations = [{lat: 27.986065, lng:86.922623}];

  const response = await elevationService.getElevationForLocation({locations});
  console.log(response.results);
};

app();

ต่อไป จับ และสุดท้าย

ออบเจ็กต์ Promise มีทั้งเมธอด then, catch และ finally ที่ใช้ฟังก์ชัน Callback

const elevationService = google.maps.ElevationService();
const locations = [{lat: 27.986065, lng:86.922623}];

const promise = elevationService.getElevationForLocation({locations});

promise
    .then((response) => {
      console.log(response.results);
    })
    .catch((error) => {
      console.log(error);
    });
    .finally(() => {
      console.log('done');
    });

รูปแบบการติดต่อกลับแบบไม่พร้อมกัน

รูปแบบการเรียกกลับยังคงใช้งานได้และระบบรองรับ

const elevationService = google.maps.ElevationService();
const locations = [{lat: 27.986065, lng:86.922623}];

const callback = (results, status) => {
  if (status === 'OK') {
    console.log(results);
  } else {
    // handle this case
  }
};

elevationService.getElevationForLocation({locations}, callback);

  1. ปัจจุบัน Promises ได้รับการสนับสนุนเฉพาะในgetPlacePredictions()