0
我是Node.js的新手,我想從其他網站上刪除一些沒有任何法律問題相關的數據,但是由於Node.js的異步,存在一些問題。請參閱下面的代碼,使用Cheerio.js請求一些URL和解析文檔。Node.js使用來自異步函數的返回對象
function getPrices() {
var url = "http://some-price-list-url.com";
request(url, function (err, res, html) {
var $ = cheerio.load(html);
var prices = {};
for(var i=0; i<10; i++){
prices[i] = $(span[class="someSelector"]);
}
return prices;
});
}
與上面的代碼沒有問題,所以我想顯示返回的對象,所以
var prices = getPrices();
console.log(prices); // ---> undefined
我想顯示安慰返回的對象,但它顯示undefined
。我測試沒有流任務的相同結構代碼,它運行良好。所以我猜console.log
在getPrices()
尚未完成之前嘗試過。我如何正確顯示這個對象?
爲什麼你就不能日誌'prices'回調函數裏面? –
@mparnisari日誌不是真正的目的,無論如何,我找到了解決方案。加入遞歸:'if(i == 9){callback(prices);回報價格; }' – Juntae
然後以這種方式顯示價格:'getPrices('005930',function(prices){console.log(prices);})'。我想出了寫一個問題的解決方案...對不起 – Juntae