สัญญา

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

การสนับสนุน

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

การใช้งาน

ดูคําแนะนํานี้เกี่ยวกับการใช้ Promise หรือดูตัวอย่างด้านล่างสําหรับการเรียกเมธอดแบบไม่สอดคล้องกันด้วย 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() เท่านั้น