Асинхронные методы в JavaScript API Google Maps возвращают Promises .
Поддерживать
| API | Методы возвращают обещания | 
|---|---|
| Направления | Да | 
| Матрица расстояний | Да | 
| Высота | Да | 
| Геокодер | Да | 
| Максимальное увеличение изображений | Да | 
| Места | Нет | 
| Автозаполнение мест | Частичная 1 | 
| Просмотр улиц | Да | 
Использование
Ознакомьтесь с этим руководством по использованию Promises или с примерами ниже для создания асинхронных вызовов методов с помощью Google Maps JavaScript API.
Асинхронность и ожидание
Оператор 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);
В настоящее время Promises поддерживаются только в
getPlacePredictions(). ↩