从嵌套函数返回值 - JavaScript

Returning values from nested functions - JavaScript

我在返回以下函数的 latLng 值时遇到了一些问题。

function getUserPosition() {
    var latLng;

    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(
            function (position) {
                latLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); // #1
            }, function () {
                latLng = defaultPosition(); // #2
            }
        );
    } else {
        latLng = defaultPosition(); // #3
    }

    return latLng;
}

假设 defaultPosition() returns 一组有效的坐标。

我已经标记了三个 latLng 作业,它们是我最新 'catch-all' 方法的一部分,但仍然没有成功。

我已经检查了其他相关的答案,但似乎仍然无法解决我的特定问题,很抱歉重新发布。

提前致谢。

由于位置 API 的异步性质,您不能这样做,而是需要使用基于回调的方法,一旦位置 API returns 值。

function getUserPosition(callback) {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(

        function (position) {
            callback(new google.maps.LatLng(position.coords.latitude, position.coords.longitude));
        }, function () {
            callback(defaultPosition()); // #2
        });
    } else {
        callback(defaultPosition()); // #3
    }
}

getUserPosition(function(latLng){
    //do all operations that depends on latLng here in the callback function
})