这个标题太冗长了。下面是我想用下面的代码来做的事情。本例中的回调位于jQuery $.get函数中。
function getMapMarkup(loadUrl, myVar) {
me = myVar;
$.get(
loadUrl,
{ var1: "hello", var2: "world" },
function(responseText) {
me = responseText;
myVar = me; //doesn't work.
},
"html"
);
}
有没有办法改变function(responseText)
回调中myVar
的值,这样我以后就可以在我的程序中使用它了?或者有没有其他(更好的)方法去做我想要做的事情?
发布于 2012-10-27 00:38:30
如果您所说的later on
指的是在$.get
调用之后立即执行,则不可能,因为AJAX是异步的,$.get
会立即返回,成功回调可以在很长一段时间后执行。知道何时发生这种情况的唯一可靠方法是将依赖于其结果的代码放入 success
回调中。您还可以在成功回调中调用其他函数,将AJAX调用的结果传递给它。
发布于 2012-10-27 00:40:04
最有可能的情况是,您在回调执行之前访问myVar
。
$.get
进行异步AJAX调用,因此回调函数将在服务器响应后稍后调用,因此任何对myVar
的直接访问都不会具有更新值。
https://stackoverflow.com/questions/13090914
复制相似问题