我有以下代码:变量范围jQuery的/ JavaScript的
var ids = new Array(5);
$(function(){
html5sql.process(sql,
function(transaction, results, rowsArray){
for(var i = 0; i < rowsArray.length; i++){
ids[i] = rowsArray[i].ID;
console.log(ids[i]); //returns the actual value for i
}
},
function(error, statement){
console.log("Error: " + error.message);
}
);
console.log(ids[0]); //returns undefined
});
正如你所看到的,for循环打印出正确的值里面打印出来。另一方面,当我在函数之外打印时,我得到的是未定义的。 范围的问题是什么?我怎样才能得到该函数之外的数组的实际值?
由于
欢迎来到** async **的精彩世界!你不能那样做。 – SLaks 2012-01-05 01:53:38
这些函数是回调函数。他们不会立即被调用。 – 2012-01-05 01:56:11
我该如何解决这个问题。任何人都可以向我解释发生了什么? – locorecto 2012-01-05 01:58:12