我有一个函数ajaxCall(),它调用一个带有数组的json文档。 我从xmlhttp.responseText返回的数据存储在数组arrayImages中。我需要访问函数ajaxCall()之外的数组arrayImages,因为我需要该数组的长度,arrayImages.length。
function ajaxCall(){
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
arrayImages = JSON.parse(xmlhttp.responseText);
output(arrayImages);
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
我需要这样的功能
var arrayLength = arrayImages.length;
答案 0 :(得分:1)
由于onreadystatechange
是一个异步函数,因此无法确定何时返回数组。因此,处理它的唯一方法是使用回调函数在数组完成时输出数组的length
。
像这样:
function ajaxCall(){
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
arrayImages = JSON.parse(xmlhttp.responseText);
output(arrayImages);
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
function output(array)
{
//your other stuff here
var arrayLength = array.length;
}