以下代码列出了Instagram用户的关注者列表,并将它们组合成一个数组,以便我可以在Express路由处理程序中返回它们。
这需要继续运行,直到Instagram说没有更多的结果可以翻页。该函数接受所需的“用户ID”,必需的“access_token”,可选的“游标”和回调。
完全组合的数据以正确的JSON格式成功返回,但我无法将其恢复到快速处理程序。
如何将此信息传递回快递处理程序?
var out_data = [];
function getFollows(id,access_token,cursor,callback) {
if(cursor && cursor != 1) {
console.log('using cursor url with cursor: '+cursor);
var url = 'https://api.instagram.com/v1/users/'+id+'/follows?&access_token='+access_token+'&client_id='+client_id+'&cursor='+cursor;
} else {
console.log('using standard url');
var url = 'https://api.instagram.com/v1/users/'+id+'/follows?&access_token='+access_token+'&client_id='+client_id+';
}
request(url,function(err,res,body){
var json = JSON.parse(body);
_.each(json.data,function(item){
out_data.push(item);
});
if(json.pagination.next_cursor) {
getFollows(id,access_token,json.pagination.next_cursor,function(adata){
out_data.push(adata);
});
}
if(!json.pagination.next_cursor) {
callback(out_data);
//console.log(out_data);
}
});
};
答案 0 :(得分:0)
依赖于getFollows()
结果的路由处理程序部分需要在传递给getFollows()
作为其回调的函数中。基本上,对getFollows()
的调用需要是处理程序中的最后一个语句。