0

我是否需要将每个链接保留在“请求({..})”中的数组中,然后显示它或在“请求({..})”之外工作,这将是我的代码但不起作用, 任何想法?

var request = require("request");
var cheerio = require("cheerio");
var arrayLinks = [];
request({
    uri: "http://www.some-url.com",
}, function(error, response, body) {
    var $ = cheerio.load(body);
    $("a").each(function() {
    var link = $(this);
    arrayLinks.push(link.attr("href"));
    });
});
arrayLinks.forEach(function(link){console.log(link)});
4

1 回答 1

2

例如:

var request = require("request");
var cheerio = require("cheerio");
var arrayLinks = [];
request({
    uri: "http://www.some-url.com",
}, function(error, response, body) {
    // Some logic.
    linkTheArray()
});

function linkTheArray() {
     arrayLinks.forEach(function(link){console.log(link)});
}

现在您可以在请求完成后运行它。还有另一种方法,但它很丑陋。您可以运行超时功能,直到您在数组中获得一些数据

于 2013-05-17T05:42:20.950 回答