متدهای ناهمزمان در سراسر API جاوا اسکریپت نقشههای گوگل، Promises را برمیگردانند.
پشتیبانی
| رابط برنامهنویسی کاربردی | متدها Promiseها را برمیگردانند |
|---|---|
| مسیرها | بله |
| ماتریس فاصله | بله |
| ارتفاع | بله |
| ژئوکودر | بله |
| حداکثر بزرگنمایی تصویر | بله |
| مکانها | خیر |
| سرویس تکمیل خودکار مکانها | جزئی ۱ |
| نمای خیابان | بله |
کاربرد
برای استفاده از Promiseها یا مثالهای زیر برای فراخوانیهای ناهمزمان متد با API جاوا اسکریپت نقشه گوگل، به این راهنما مراجعه کنید.
همگامسازی و انتظار
عملگر await برای منتظر ماندن برای یک Promise استفاده میشود. این عملگر فقط میتواند درون یک تابع async استفاده شود.
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 است که توابع 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');
});
الگوی فراخوانی ناهمگام
الگوی فراخوانی برگشتی هنوز معتبر و پشتیبانی میشود.
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);
در حال حاضر، Promiseها فقط در
getPlacePredictions()پشتیبانی میشوند. ↩