0

「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)});
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)});
}

これで、リクエストが完了した後に実行できます。もう1つの方法がありますが、かなり醜いです。配列にデータを取得するまで、タイムアウト関数を実行できます

于 2013-05-17T05:42:20.950 に答える