我试图用getjson / ajax命令中的数据填充我的数组但由于某种原因,该数组在函数外是空的。
这是我的代码:
$.ajax({
url: instagramUrl,
dataType: 'json',
async: false,
data: access_parameters,
success: function(data) {
if(data.data.length > 0) {
for (var key in data.data ){
photo_container.push(data.data[key]);
console.log(photo_container); <--- filled array
}
}
}
});
console.log(photo_container); <--- empty array
我发现async:false应该解决这个问题,但是我不能让它工作我之前已经尝试了getjson,这也没有用。
$.ajaxSetup({
async: false
});
也不起作用:(
如果有人知道答案,请告诉我!谢谢!
答案 0 :(得分:2)
在使用数据之前,您必须等待ajax调用完成:
function retrieveImages() {
return $.ajax({
url: instagramUrl,
dataType: 'json',
data: access_parameters
});
}
$(document).ready(function () {
var photo_container = [];
retrieveImages().done(function(data) {
if(data.data.length > 0) {
for (var key in data.data ){
photo_container.push(data.data[key]);
console.log(photo_container); <--- filled array
}
}
// you can only use the data inside the done() handler,
// when the call has completed and the data is returned
console.log(photo_container);
});
});