0

这个标题是满口的。这是我在下面的代码中尝试做的事情。本例中的回调在 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),以便我以后可以在我的程序中使用它?还是有另一种(更好的)方法来做我想做的事情?

4

2 回答 2

2

如果later on你的意思是在$.get调用之后立即没有,那么没有办法,因为 AJAX 是异步的,并且$.get立即返回并且成功回调可以在很久以后执行。知道何时发生这种情况的唯一可靠方法是将取决于其结果的代码放入回调success中。您还可以在成功回调中调用其他函数,将 AJAX 调用的结果传递给它。

于 2012-10-26T16:38:30.273 回答
1

您很可能myVar在执行回调之前访问。

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

于 2012-10-26T16:40:03.547 回答