הבטחות

שיטות אסינכרוניות ב-JavaScript API של מפות Google מחזירות Promises.

תמיכה

API שיטות להחזרת הבטחות
מסלול כן
מטריצת המרחק כן
גובה כן
Geocoder (קואורדינטות) כן
כמות מקסימלית של תמונות בזום כן
מקומות לא
Places signupService באופן חלקי1
Streetview כן

Usage

מומלץ לעיין במדריך הזה בנושא שימוש ב-Promises או בדוגמאות הבאות, לביצוע הפעלות method אסינכרוניות באמצעות JavaScript של API של מפות Google.

אסינכרוני וממתינים

אופרטור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 כולל methods 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().