Skip to content

Instantly share code, notes, and snippets.

@varmais
Created October 1, 2015 19:43
Show Gist options
  • Select an option

  • Save varmais/74586ec1854fe288d393 to your computer and use it in GitHub Desktop.

Select an option

Save varmais/74586ec1854fe288d393 to your computer and use it in GitHub Desktop.
Geolocation to Promise wrap example
var getPosition = function (options) {
return new Promise(function (resolve, reject) {
navigator.geolocation.getCurrentPosition(resolve, reject, options);
});
}
getPosition()
.then((position) => {
console.log(position);
})
.catch((err) => {
console.error(err.message);
});
@erickvieira
Copy link
Copy Markdown

erickvieira commented Apr 30, 2018

One question: is this a solution to promise catch empty error in ionic geolocation.getCurrentPosition? I am looking for this in all web, since most than one week, so please tell me that is it :(((

@trandaison
Copy link
Copy Markdown

trandaison commented May 3, 2018

To check if Geolocation is supported.

getCurrentPosition: function () {
    if (navigator.geolocation) {
      return new Promise(
        (resolve, reject) => navigator.geolocation.getCurrentPosition(resolve, reject)
      )
    } else {
      return new Promise(
        resolve => resolve({})
      )
    }
  }
getCurrentPosition()
  .then(
    position => console.log(positon);
    if (position.coords) {
      position => console.log(positon);
    } else {
      alert('Geolocation is not supported by this browser.');
    }
  ).catch(
    // error => console.log(error);
    // Or
    error => {
      var msg = null;
      switch(error.code) {
        case error.PERMISSION_DENIED:
            msg = "User denied the request for Geolocation.";
            break;
        case error.POSITION_UNAVAILABLE:
            msg = "Location information is unavailable.";
            break;
        case error.TIMEOUT:
            msg = "The request to get user location timed out.";
            break;
        case error.UNKNOWN_ERROR:
            msg = "An unknown error occurred.";
            break;
      }
      alert(msg);
    }
  )

@erickvieira Did you try to catch via error code like above?

@davidhbigelow
Copy link
Copy Markdown

THANK YOU FOR POSTING THAT SOLUTION!

@krobik
Copy link
Copy Markdown

krobik commented Mar 5, 2019

I'm glad I stumbled upon this decision!

@EdTimmer
Copy link
Copy Markdown

Thank you!

@alvarezaaronAI
Copy link
Copy Markdown

After hours of trying to solve it for my self. This freaking saved my life. I been at it for hours. THANK YOU!!

@JenniferWP
Copy link
Copy Markdown

Am I the only one who gets an error while trying to access position.coords ? It says Property 'coords' does not exist on type '{}'.

@charmingelle
Copy link
Copy Markdown

So elegant, thank you so much :)

@yuki0417
Copy link
Copy Markdown

yuki0417 commented Sep 7, 2019

Thank you! You save my time :}

@danprowse
Copy link
Copy Markdown

After trying to figure this out for a couple of hours, realised I needed a promise.. this solution worked great! thank you ๐Ÿ‘

@thamer-ben-dhafer
Copy link
Copy Markdown

Thank you

@dlik
Copy link
Copy Markdown

dlik commented Jan 6, 2021

Thank you very much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment