Объекты Promise

Асинхронные методы в JavaScript API Google Maps возвращают Promises .

Поддерживать

API Методы возвращают промисы
Направления Да
Матрица расстояний Да
Высота Да
Геокодер Да
Изображения с максимальным увеличением Да
Места Нет
Сервис автозаполнения мест Часть 1
Вид улицы Да

Использование

См. это руководство по использованию промисов или примеры ниже для выполнения асинхронных вызовов методов с помощью JavaScript API Google Maps.

Асинхронный режим и ожидание

Оператор `await` используется для ожидания завершения выполнения Promise. Он может использоваться только внутри асинхронной функции.

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

Затем, поймать, и наконец,

Объект Promise содержит методы then , catch и finally , которые принимают функции обратного вызова.

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

Асинхронный шаблон обратного вызова

Шаблон обратного вызова по-прежнему актуален и поддерживается.

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. В настоящее время промисы поддерживаются только в getPlacePredictions() .