הבטחות

שיטות אסינכרוניות בהחזרה של 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);

  1. בשלב הזה, הבטחות נתמכות רק בgetPlacePredictions()