簡體   English   中英

Node.js遞歸Reddit API調用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM