Metode asinkron di seluruh Google Maps JavaScript API akan menampilkan Promise.
Dukungan
API | Metode menampilkan Promise |
---|---|
Directions | Ya |
Distance Matrix | Ya |
Elevation | Ya |
Geocoder | Ya |
Maximum Zoom Imagery | Ya |
Places | Tidak |
Places AutocompleteService | Sebagian1 |
Streetview | Ya |
Penggunaan
Lihat panduan ini tentang cara menggunakan Promise atau contoh di bawah untuk melakukan panggilan metode asinkron dengan Google Maps JavaScript API.
Asinkron dan await
Operator await digunakan untuk menunggu Promise. Operator ini hanya dapat digunakan di dalam fungsi asinkron.
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, dan finally
Objek Promise memiliki metode then
, catch
, dan finally
yang mengambil fungsi 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');
});
Pola callback asinkron
Pola callback masih berlaku dan didukung.
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);
-
Saat ini Promise hanya didukung di
getPlacePredictions()
. ↩