Promesas

Los métodos asíncronos en la API de Google Maps JavaScript devuelven objetos Promise (promesas).

Compatibilidad

API Los métodos devuelven promesas.
Directions
Distance Matrix
Elevation
Geocoder
Maximum Zoom Imagery
Places No
Places AutocompleteService Parcial1
Street View

Uso

Lee esta guía sobre el uso de promesas o consulta los siguientes ejemplos para realizar llamadas de método asíncronas con la API de Google Maps JavaScript.

Async y await

El operador await se usa para esperar a que se reciba una promesa. Solo se puede utilizar en una función asíncrona (async).

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 y finally

El objeto Promise tiene los métodos then, catch y finally, que toman funciones de devolución de llamada.

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

Patrón de devolución de llamada asíncrona

El patrón de devolución de llamada sigue siendo válido y compatible.

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. Actualmente, las promesas solo se admiten en getPlacePredictions()