可以在回调中设置javascript函数参数的值吗?

时间:2012-10-26 16:35:59

标签: javascript jquery ajax callback

那个头衔是满口的。这是我在下面的代码中尝试做的事情。这种情况下的回调是在jQuery $ .get函数中。

      function getMapMarkup(loadUrl, myVar) {
        me = myVar;
        $.get(
            loadUrl,
            { var1: "hello", var2: "world" },
            function(responseText) {
              me = responseText;
              myVar = me; //doesn't work.  
            },
            "html"
         );     
        }

有没有办法在myVar回调中更改function(responseText)的值,以便稍后我可以在我的程序中使用它?或者还有另一种(更好的)方法可以解决我想要做的事情吗?

2 个答案:

答案 0 :(得分:2)

如果通过 later on 你的意思是紧接$.get之后的呼叫,那么就没有办法,因为AJAX是异步的并且$.get立即返回并且成功回调可以在以后执行。了解何时发生这种情况的唯一可靠方法是将依赖于其结果的代码置于 success回调中。您还可以在成功回调中调用其他函数,并将其传递给AJAX调用的结果。

答案 1 :(得分:1)

您最有可能在执行回调之前访问myVar

$.get进行异步的AJAX调用,因此稍后在服务器响应后调用回调函数,因此对myVar的任何即时访问都不会有更新的值。