如何使导航器地理位置更合理?

问题描述 投票:0回答:1

我需要保证这行代码的正确性:

navigator.geolocation.getCurrentPosition(setPosition);

因为它的结果是异步的。

我尝试过:

await new Promise (resolve => navigator.geolocation.getCurrentPosition(
  () => setPosition().then(resolve))
)

但是不起作用...

我之前的代码是这样的:

const setPosition = async (position) => {
  const lat = await position.coords.latitude
  const lng = await position.coords.longitude
  mapOptions.center = {
    lat: lng,
    lng: lat
  }      
}

navigator.geolocation.getCurrentPosition(setPosition);

有什么想法吗?

asynchronous es6-promise navigator
1个回答
0
投票

使用打字稿,一种可能的解决方法是

   const getLocation = (options: GeoOptions) => {
      return new Promise((resolve, reject) => {
         Geolocation.getCurrentPosition(resolve, reject, options);
      });
   }

   type GeoOptions = {
      timeout?: number;
      maximumAge?: number;
      enableHighAccuracy?: boolean;
      distanceFilter?: number;
      useSignificantChanges?: boolean;
   };
© www.soinside.com 2019 - 2024. All rights reserved.