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