2013-05-17 75 views
0

我需要保持在「請求({..})」數組中的每個鏈接,然後顯示它或在「請求({..})」的外部工作,這將是我的代碼但不起作用,有什麼想法?如何創建數組全局?在nodejs

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

回答

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

現在你可以運行它的請求完成後。還有一種方法,但它很醜陋。你可以運行一個超時函數,直到你得到數組中的一些數據。

+0

現在我明白了,謝謝你的解釋,用例子更清楚。 – opmeitle