Confused with return in function

Confused with return in function
0.0 0

#1

I tried to return longitude and latitude but I do not know where is the problem, can someone explain me.

function getLocation() {
    if (navigator.geolocation) {
        return navigator.geolocation.getCurrentPosition(showPosition);
    } else {
        some function
    }
}

function showPosition(position){
    let lat = position.coords.latitude; 
    let long = position.coords.longitude;   
    return lat, long;
}

getLocation();
console.log(lat,long);

#2

For one thing, you are trying to return two vars-- You can, but only if you combine them in a single array.

However even with a single var you have to give your function a return assignment. That is, the ‘return’ has to go somewhere not the ‘ether’.

I.e. var lat = getLatitude();

– Mainly because keep in mind the lat/long vars are now out of ‘scope’ as you have defined your function.


#3

I will try to answer, you can try to pass the lat and long value to other function and do action inside the function

function showPosition(position){
    let lat = position.coords.latitude; 
    let long = position.coords.longitude;   
    // remove the return 
    //return lat, long;
  // make a object for passing data
  var cord={
     "lat":lat,
     "long": long 
  }
 // make a function 
 getData(cord);
}

and you can make getData function to execute the value

function getData(value){
        console.log("this is lat value "+value.lat+ " this is long value "+value.long);
}

#4

I find a better solution for my previous answer

// make a  function with parameter
function getLocation(success) {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(success);
    } else {
        console.log("else");
    }
}


getLocation(function(pos){
        let lat=pos.coords.latitude;
        let long=pos.coords.longitude;
        var coord={
                "lat":lat,
                "long":long
        };
        console.log("this is lat value"+coord.lat+" this is long value "+ coord.long);
});

sorry for my bad explanation english is not my first language :joy: