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