Promesas

Los métodos asíncronos en la API de Google Maps JavaScript muestran promesas.

Compatibilidad

API Los métodos muestran promesas
Directions
Distance Matrix
Elevation
Geocoder
Imágenes con zoom máximo
Places No
Servicio Place Autocomplete Parcial1
Street View

Uso

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

Métodos asíncronos y espera

El operador await se usa para esperar una promesa. Solo se puede utilizar en una función asíncrona.

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