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