Promessas

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

  1. No momento, as promessas são aceitas apenas em getPlacePredictions()