promise

Google Maps JavaScript API 中的异步方法会返回 promise

支持

API 方法是否返回 promise
路线
距离矩阵
海拔
地理编码器
图像最大缩放级别
地点
地点自动补全服务 部分支持1
街景

使用情况

请参阅此指南,了解如何使用 promise;也可以查看以下示例,了解如何使用 Google Maps JavaScript API 进行异步方法调用。

async 和 await

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

then、catch 和 finally

promise 对象具有可接受回调函数的 thencatchfinally 方法。

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. 目前,promise 只能在 getPlacePredictions() 中使用。