Promessas

Métodos assíncronos na API Google Maps JavaScript retornam Promessas.

Suporte

API Métodos retornam Promessas
Rotas Sim
Distance Matrix Sim
Elevation Sim
Geocoder Sim
Imagens com zoom máximo Sim
Places Não
Serviço Place Autocomplete Parcial1
Streetview Sim

Uso

Consulte este guia sobre o uso de Promises ou os exemplos abaixo para fazer chamadas de método assíncronas com a API Maps JavaScript do Google.

Fazer assincronia e aguardar

O operador "await" é usado para aguardar uma Promessa. Ele só pode ser usado 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');
    });

Fazer assincronia do padrão de callback

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