שיטות אסינכרוניות בהחזרה של JavaScript API במפות Google הבטחות.
תמיכה
API | שיטות שמחזירות Promises |
---|---|
מסלול | כן |
Distance Matrix | כן |
גובה | כן |
Geocoder (בקואורדינטות) | כן |
כמות מקסימלית של תמונות בזום | כן |
מקומות | לא |
Places InventoryService | חלקי1 |
Streetview | כן |
שימוש
במדריך הזה מוסבר איך משתמשים ב-Promises, או אפשר להיעזר בדוגמאות שבהמשך כדי לבצע קריאות אסינכררוניות ל-methods באמצעות Google Maps JavaScript API.
Async ו-await
המתנה למפעיל משמש להמתנה להבטחה. אפשר להשתמש בו רק בתוך פונקציה אסינכררונית.
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 object
יש שיטות then
, catch
ו-finally
שמקבלות פונקציות קריאה חוזרת.
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);
-
בשלב הזה, הבטחות נתמכות רק ב
getPlacePredictions()
. ↩