我有一个全局array
,我想console.log(array_name)
,但我得到了未定义的错误
以下是我的代码:
<script type="text/javascript">
var profit = [];
$(document).ready(function(e) {
$.ajax({
url : "/php/get-inflow.php",
dataType: "json",
type: "POST",
success: function(data){
for(var i =0; i<data.length; i++){
if(data[i] == null){
profit[i] = 0; // logging profit[i] here gives me correct value
}else{
profit[i] = parseInt(data[i]); // logging profit[i] here gives me correct value
}
}
}
});
console.log(profit);
//some other functions.......
});
</script>
当我查看控制台时,我得到输出为[ ]
,这意味着一个空白数组......
利润数组是否正确设置为全局(jquery的新功能) 如何全局访问此数组以及其他函数 谢谢!
答案 0 :(得分:1)
AJAX是异步运行的。 &#39; profit
&#39;在你的成功中有价值。关闭,但不是紧接着电话。
如果确实需要,您还可以同步运行AJAX调用(为async添加一个选项:false)。这将阻止您的页面做任何事情,直到交易完成。
答案 1 :(得分:0)
John Green所说的一个例子(标记John Green是正确的!) - 这对于评论来说太大了。
var profit =[];
function logresults(data) { console.log(data); }
$(document).ready(function(e) {
function _ajax(callback) {
$.ajax({
url : "/php/get-inflow.php",
dataType: "json",
type: "POST",
success: function(data){
for(var i =0; i<data.length; i++){
if(data[i] == null){
profit[i] = 0;
}else{
profit[i] = parseInt(data[i]);
}
}
callback(profit);
}
});
}
/* run */
_ajax(logresults);
});