我是否需要将每个链接保存在“request({..})”中的数组中,然后在“request({..})”的外部显示或工作,这将是我的代码但是什么都行不通?
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)});
答案 0 :(得分: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)});
}
现在您可以在请求完成后运行它。还有另外一种方式,但它非常难看。您可以运行超时功能,直到在数组中获得一些数据