2014-03-01 51 views
0

为什么我无法写入全局变量?无法写入全局变量

var postid=1; 
request("get", {data:1}, function(data) { 
alert(data.response[1].id); // get data 
postid=2; 
}); 
alert(postid); // get "1" 
+0

请参见[如何返回从AJAX调用的响应?](https://stackoverflow.com/questions/ 14220321 /如何对返回的响应-从-AN-Ajax的呼叫)。 –

回答

1

因为你的AJAX请求是异步和要求完成之前警告正在发生并将postid值2

你的事件的顺序有可能:

  1. Set postid = 1
  2. 开始AJAX请求。
  3. 警报=帖子ID 1
  4. AJAX请求完成,并设置=帖子ID 2.
+0

和我能做些什么?我使用api并希望使用我得到的数据 – user3356784

+0

我使用API​​并按原样获取 – user3356784

+0

@ user3356784您的意见没有多大意义。它是一个API是没有意义的。这是你的*** JS代码,需要改变。将请求更改为同步或者添加一个回调方法,当请求完成时在您的函数内部触发。 – Timeout