从嵌套函数返回值 - JavaScript

时间:2015-05-20 05:56:15

标签: javascript google-maps return nested-function

我在为以下函数返回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()返回一组有效的坐标。

我已经标记了三个latLng作业,这些作业属于我最新的' catch-all'接近但仍然没有运气。

我已经检查了其他相关的答案,但仍然无法理解我的特定问题,很抱歉转发。

提前致谢。

1 个答案:

答案 0 :(得分:1)

由于位置API的异步性质,您不能这样做,而是需要使用基于回调的方法,其中一旦locaion API返回值,就会调用回调函数。

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Try
        If Not Page.IsPostBack Then
            SampleFormWrapper.Visible = True
        End If
        End If
    Catch exc As Exception        'Module failed to load
    End Try
End Sub