那个头衔是满口的。这是我在下面的代码中尝试做的事情。这种情况下的回调是在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)
的值,以便稍后我可以在我的程序中使用它?或者还有另一种(更好的)方法可以解决我想要做的事情吗?
答案 0 :(得分:2)
如果通过 later on
你的意思是紧接$.get
之后的呼叫,那么就没有办法,因为AJAX是异步的并且$.get
立即返回并且成功回调可以在以后执行。了解何时发生这种情况的唯一可靠方法是将依赖于其结果的代码置于 success
回调中。您还可以在成功回调中调用其他函数,并将其传递给AJAX调用的结果。
答案 1 :(得分:1)
您最有可能在执行回调之前访问myVar
。
$.get
进行异步的AJAX调用,因此稍后在服务器响应后调用回调函数,因此对myVar
的任何即时访问都不会有更新的值。