【发布时间】:2014-12-30 06:30:34
【问题描述】:
我一直在通过 Instagram API 修改分页;但是,对于如何通过递归调用存储返回的数据,我有点困惑。
我想将所有项目链接存储在一个数组中,但我当前的方法返回一个空数组。
var collected_objs = []; // Array to collect links (urls)
$(document).ready(function() {
$('#fetch_followers').click(function() {
pollInstagram('https://api.instagram.com/v1/users/3/media/recent/?callback=?&min_timestamp=1388563200&max_timestamp=1420099200&access_token={access_token}', 33);
});
});
function pollInstagram(next_url, count) {
$.ajax({
method: "GET",
url: next_url,
dataType: "jsonp",
jsonp: "callback",
jsonpCallback: "jsonpcallback",
success: function(data) {
$.each(data.data, function(i, item) {
$("#log").val($("#log").val() + item.id + '\n');
console.log("****************************");
console.log("This " + JSON.stringify(item.link));
console.log("****************************");
$('#target').append('<div id="likes_info"><a href="'+item.link+'"><img src="'+item.images.thumbnail.url+'"/></a>'+"<p><span>"+item.likes.count+"</span></p></div>");
collected_objs.push(item.link); // Adding urls to collected_objs -- Not Working
});
$("#log").val($("#log").val() + data.pagination.next_url + '\n');
// If the next url is not null or blank:
if( data.pagination.next_url && count <=50 ) {
var n_url=data.pagination.next_url + "&callback=?";
pollInstagram(n_url, ++count);
}
},
error: function(jqXHR, textStatus, errorThrown) {
//alert("Check you internet Connection");
$("#log").val($("#log").val() + 'Error\n');
}
});
}
【问题讨论】:
-
定义“不工作”。我看不到您实际上是如何使用
collected_objs的结果的。您是否正确处理了 ajax 请求的异步性质? -
我的意思是说在调用之后变量collected_objs 没有被更新。这是我第一次使用异步调用,这解释了我对如何在分页完成后保持全局变量更新的无知。
标签: javascript api rest pagination instagram