I metodi asincroni dell'API Maps JavaScript restituiscono Promise.
Assistenza
API | I metodi restituiscono promesse |
---|---|
Indicazioni | Sì |
Distance Matrix | Sì |
Altitudine | Sì |
Geocodificatore | Sì |
Immagini con zoom massimo | Sì |
Luoghi | No |
Places AutocompleteService | Parziale1 |
Street View | Sì |
Utilizzo
Consulta questa guida sullo sfruttamento delle promesse o gli esempi riportati di seguito per effettuare chiamate di metodi asincroni con l'API Google Maps JavaScript.
Async e await
L'operatore await viene utilizzato per attendere una promessa. Può essere utilizzata solo all'interno di una funzione asincrona.
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();
Poi, catch e infine
L'oggetto Promise ha i metodi then
, catch
e finally
che accettano funzioni di 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');
});
Pattern di callback asincrono
Il pattern di callback è ancora valido e supportato.
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);
-
Al momento le promesse sono supportate solo in
getPlacePredictions()
. ↩