[英]Node.js Recursive Reddit API Calls
我想獲取特定subreddit上所有用戶的天賦列表。 Reddit將請求分為1,000個大塊,並允許使用“ before”和“ after”參數,以便可以提取所有這些參數。 但是,我無法理解如何創建遞歸函數以返回包含所有內容的對象。
請求示例如下所示:
GET http://www.reddit.com/r/soccer/api/flairlist.json?limit=1000&after=t2_83wp8
返回的響應將是一個JSON對象,帶有一個用戶數組以及一個“ prev”和“ next”字符串,可以分別將其放入“ before”和“ after url”參數中。
就像這樣:
function getEverything(callback) {
var results = [];
function getSomeMore(callback, after) {
var url = 'http://...?limit=1000' + (after ? 'after=' + encodeURIComponent(after) : '');
makeAjaxRequest(url, function(err, body) {
if (err) return cb(err);
results = results.concat(body.results);
if (body.after)
getSomeMore(callback, body.after);
else
callback(null, results);
});
}
makeAjaxRequest(callback);
}
...並使用如下所示的內容:
getEverything(function (err, everything) {
if (err) return console.log('ERROR: cant get everything:', err);
console.log('everything:', everything);
});
雖然這顯然只是偽代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.