Métodos assíncronos na API Google Maps JavaScript retornam promessas.
Suporte
| API | Métodos retornam promessas | 
|---|---|
| Directions | Sim | 
| Distance Matrix | Sim | 
| Elevation | Sim | 
| Geocoder | Sim | 
| Maximum Zoom Imagery | Sim | 
| Places | Não | 
| Serviço Place Autocomplete | Parcial1 | 
| Streetview | Sim | 
Uso
Consulte este guia sobre o uso de promessas ou os exemplos abaixo para fazer chamadas de método assíncronas com a API Google Maps JavaScript.
Async e await
O operador "await" é usado para aguardar uma promessa. Ele só pode ser colocado em uma função assí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 e finally
O objeto Promise tem métodos then, catch e finally, que recebem funções de callback.
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');
    });
Padrão de callback assíncrono
O padrão de callback continua válido e compatível.
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);
- 
No momento, as promessas são aceitas apenas em getPlacePredictions(). ↩