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 Sí
Distance Matrix Sí
Elevation Sí
Geocoder Sí
Maximum Zoom Imagery Sí
Places No
Places AutocompleteService Parcial1
Street View Sí

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