Promise-Objekte

Von 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
Orte 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.

Asynchron laden und warten

Der Operator „await“ wird verwendet, um auf ein Promise-Objekt zu warten. Es kann nur in asynchronen Funktionen verwendet werden.

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

Abrufen und anschließend

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.