我在學習node.js與learnyounode
。 我遇到問題JUGGLING ASYNC
。 問題描述如下:
給出三個URL作爲命令行參數。您應該調用http.get()
調用以從這些url中獲取數據,然後按照與參數列表中的順序相同的順序打印它們。 這裏是我的代碼:處理多個調用異步回調
var http = require('http')
var truecount = 0;
var printlist = []
for(var i = 2; i < process.argv.length; i++) {
http.get(process.argv[i], function(response) {
var printdata = "";
response.setEncoding('utf8');
response.on('data', function(data) {
printdata += data;
})
response.on('end', function() {
truecount += 1
printlist.push(printdata)
if(truecount == 3) {
printlist.forEach(function(item) {
console.log(item)
})
}
})
})
}
這裏是我不理解的問題: 我試圖完成的數據存儲在response.on('end', function(){})
使用字典的每個URL。但是,我不知道如何獲得該http.get()
的網址。如果我可以在http.get()
內部做一個局部變量,那會很好,但我認爲每當我聲明一個變量爲var url
時,它總是會指向最後一個url。由於它是全球性的,它通過循環不斷更新。對於我來說,將這些已完成的數據存儲爲鍵值與鍵值相等的最佳方式是什麼?