Lời hứa

Các phương thức không đồng bộ trong API JavaScript của Google Maps sẽ trả về Promise.

Hỗ trợ

API Các phương thức trả về Lời hứa
Đường đi Có
Ma trận khoảng cách Có
Độ cao Có
Geocoder Có
Hình ảnh phóng to tối đa Có
Địa điểm Không
Places AutocompleteService Một phần1
Streetview Có

Cách sử dụng

Hãy xem hướng dẫn này về cách sử dụng Lời hứa 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.

Không đồng bộ và chờ

Toán tử await được dùng để chờ một Promise. Bạn chỉ có thể dùng hàm này 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 đó, bắt và cuối cùng

Đối tượng Promise có các phương thức then, catch và finally lấy 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 lệnh 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);

  1. Hiện tại, Promises chỉ được hỗ trợ ở getPlacePredictions(). ↩