เมธอดแบบอะซิงโครนัสทั่วทั้ง Google Maps JavaScript API จะแสดงผลพรอมิส
การสนับสนุน
API | เมธอดแสดงผล Promise |
---|---|
เส้นทาง | ใช่ |
เมทริกซ์ระยะทาง | ใช่ |
ระดับความสูง | ใช่ |
โปรแกรมแปลงพิกัดภูมิศาสตร์ | ใช่ |
ภาพแบบซูมสูงสุด | ใช่ |
สถานที่ | ไม่ได้ |
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);
-
ปัจจุบัน Promises ใช้ได้ใน
getPlacePredictions()
เท่านั้น ↩