请求节点同步



有人在没有assync的情况下编写以下代码?我想要下面的代码执行传递以同步传递。

var url = 'http://xxxxxx.com/';
var cont = 1;
while(cont != 10){
    request(url + cont,function(err, res, html){
        var $ = cheerio.load(html);
        var list = $('li');
        list.each(function(idx, el){
            var url2 = $(el).children('a').attr('href');
            request(url2, function(error, response, body){
                //I Want execute this response for continue
            });
        });
    });
    cont++;
}

试试这个,如果你需要 n 级母鸡,我希望只有 2 级请求调用,这应该不起作用.然后我们需要递归来代替它。
如果有什么问题:),请告诉我

async.times(10, function(n, next) {
        request(url + cont,function(err, res, html){
                var $ = cheerio.load(html);
                var list = $('li');
                async.each(list, function(el, cbk){
                    var url2 = $(el).children('a').attr('href');
                    request(url2, function(error, response, body){
                        //I Want execute this response for continue
                        cbk(err, data);
                    });
                }, next);
            });
    }, function(err, users) {
        //data is 2D array
        //err is error if any
    });  

最新更新