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