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);
-
No momento, as Promessas são aceitas apenas em
getPlacePredictions()
. ↩