执行顺序 - 我能控制它吗?

时间:2013-08-06 18:52:53

标签: javascript web

它是一个ASP.Net应用程序,这是javascript函数的一部分:

//x & y are global variables
x = document.getElementById(MapXVal).value;
y = document.getElementById(MapYVal).value;
if ((x === undefined || x === null || x === "") &&
    (XVal !== undefined && XVal !== null && XVal !== "")) {

        x = document.getElementById(XVal).value;
        y = document.getElementById(YVal).value;
        point = new esri.geometry.Point(x, y, new esri.SpatialReference({ "wkt": ...}));
        var OutSR = new esri.SpatialReference({ "wkid": 102113 });
        gsvc.project([point], OutSR, function (projectedPoints) {

            var output = projectedPoints[0];
            alert('deep inside');
            x = output.x;
            y = output.y;
        });
    }
alert('outer scope');
if (x !== null && y !== null && x !== "" && y !== "") {
    //do something with x & y
}

我要做的是:调用函数gsvc.project...etc来计算全局变量的值x& y稍后将在代码中使用。

问题: gsvc.project中的代码将在其function包含gsvc.project..function(projectedPoints){后执行(例如,外部范围将显示消息在深入之前)所以我不会有x&的值直到为时已晚。

我不是 Javascript 的专家,所以我一直在寻找为什么会发生这种情况,并且在这一点上找不到任何东西。我已经通过在{{1}}声明中复制我的代码来解决了这个问题,但是我不想复制,并且想知道我的问题是否有解决方案:控制执行,导致延迟,或者可能是更好的方法吗?

0 个答案:

没有答案