【发布时间】:2015-10-19 17:56:23
【问题描述】:
我阅读了一些相同的教程问题,但我仍然无法理解。
我用下面的代码做对了
<code>
var httpModule = require('http');
var blModule = require('bl');
var arguments = process.argv;
var urls = [ arguments[2], arguments[3], arguments[4] ];
var results = [];
var count =0;
urls.forEach(
function(url , i)
{
var printResponse = function (response)
{
response.pipe(
blModule(
function(err, data)
{
count++;
if(err)
return console.log(err);
results[i] = data.toString();
//if(results.length===3)
if(count===3)
{
for( var c=0; c < results.length; c++)
console.log(results[c]);
}
}
)
);
}
httpModule.get(url, printResponse);
}
);
</code>
我不明白的部分是 if(count===3) ,我知道通过检查 if count == 3,我可以确定回调函数被全部调用。 最初我使用 if(results.length === 3) 因为我认为这意味着我现在有了所有结果,但它失败了,谁能解释一下?
谢谢
【问题讨论】:
标签: javascript node.js asynchronous