הבטחות

שיטות אסינכרוניות ב-Google Maps JavaScript API מחזירות הבטחות.

תמיכה

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

Usage

קראו את המדריך הזה לשימוש ב-Promises או בדוגמאות הבאות לביצוע קריאות לשיטה אסינכרונית באמצעות Google Maps JavaScript API.

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

האופרטור 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 שמקבלות פונקציות של קריאה חוזרת.

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');
    });

דפוס קריאה חוזרת (callback) אסינכרוני

דפוס הקריאה החוזרת עדיין תקף ונתמך.

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().