Promise-Objekte

Über die asynchronen Methoden in der Google Maps JavaScript API werden Promise-Objekte zurückgegeben.

Support

API Promise-Objekte werden zurückgegeben
Directions Ja
Distance Matrix Ja
Elevation Ja
Geocoder Ja
Maximum Zoom Imagery Ja
Places Nein
Places AutocompleteService Teilweise1
Streetview Ja

Verwendung

In diesem Leitfaden erfahren Sie, wie Sie Promise-Objekte oder die nachfolgenden Beispiele verwenden, um mit der Google Maps JavaScript API asynchrone Methodenaufrufe auszuführen.

„async“ und „await“

Der Operator „await“ wird verwendet, um auf ein Promise-Objekt zu warten. Seine Verwendung ist nur in asynchronen Funktionen möglich.

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

„then“, „catch“ und „finally“

Für das Promise-Objekt gibt es die Methoden then, catch und finally, die Callback-Funktionen unterstützen.

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

Asynchrones Callback-Muster

Das Callback-Muster ist weiterhin gültig und wird unterstützt.

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. Promise-Objekte werden derzeit nur in getPlacePredictions() unterstützt.