2014-09-02 63 views
0
var url = posts.paging.next; 
for (var i = 0; i < 3; i++) { 
    (function(url,i) { 
request(url,{json:true}, function (error, response, body) { 
    if (!error && response.statusCode == 200) { 
    url = body.paging.next; 
    console.log(i+"+++"+url) 
    } 
}); 
    })(url,i); 
};//for 

根據異步請求響應(body.paging.next),我想改變變種URL的值,它是頂部的代碼。請幫助異步函數內改變變量值 - 的Node.js

注意:我試圖從facebook api獲得所有評論,要做到這一點,我需要獲得頁面鏈接。正因爲如此,我寫了這些代碼,如果你有任何其他的替代方式,請建議他們thanx

回答

1

假設你試圖按順序執行請求(例如下一個請求依賴於前一個請求的url) ,你可以這樣做(使用async模塊):

var async = require('async'); 

// ... 

var url = posts.paging.next, i = 0; 

async.whilst(
    function() { return i < 3; }, 
    function(callback) { 
    ++i; 
    request(url, { json: true }, function(err, response, body) { 
     // TODO: handle `err` 
     //return callback(err); 

     if (!err && response.statusCode === 200) { 
     url = body.paging.next; 
     console.log(i + '+++' + url); 
     callback(); 
     } 
    }); 
    }, 
    function(err) { 
    // done! 
    } 
); 
+0

這是正確的答案,太感謝你了,我是使用異步模塊不同有些時候,在這個時候你和異步救了我的時間,我得到了一些node.js體驗點:D – 2014-09-02 01:20:45