Promise

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

  1. Saat ini Promise hanya didukung di getPlacePredictions()