Các phương thức không đồng bộ trong suốt API JavaScript của Google Maps đều trả về Promise.
Hỗ trợ
| API | Các phương thức trả về Promise |
|---|---|
| Đường đi | Có |
| Ma trận khoảng cách | Có |
| Độ cao: | Có |
| Trình mã hoá địa lý | Có |
| Hình ảnh thu phóng tối đa | Có |
| Địa điểm | Không |
| Places AutocompleteService | Một phần1 |
| Street View | Có |
Cách sử dụng
Hãy xem hướng dẫn này về cách sử dụng Promise hoặc các ví dụ bên dưới để thực hiện các lệnh gọi phương thức không đồng bộ bằng API JavaScript của Google Maps.
Async và await
Toán tử await được dùng để chờ một Promise. Bạn chỉ có thể sử dụng toán tử này bên trong một hàm 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();
Then, catch và finally
Đối tượng
Promise
có các phương thức then, catch và finally nhận các hàm gọi lại.
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');
});
Mẫu gọi lại không đồng bộ
Mẫu gọi lại vẫn hợp lệ và được hỗ trợ.
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);
-
Hiện tại, Promise chỉ được hỗ trợ trong
getPlacePredictions(). ↩