【发布时间】:2015-02-09 13:26:58
【问题描述】:
我有一个简单的 nodejs 函数,应该如下工作:
- 向 url 列表发出 GET 请求。
- 收集对数组的所有响应。
- 逐行打印回复。
问题是我在开始时初始化 results 数组,在函数中间我将响应字符串推送到这个数组,但最后这个数组是空的。
var http = require('http');
var bl = require('bl');
var argv = process.argv;
var results = [];
for (i = 2; i < argv.length; i++) {
var url = argv[i].toString();
http.get(url, function (response) {
response.pipe(bl(function (err, data) {
results.push(data.toString()); //if im just printing the data it shows the correct info.
}))
})
}
console.log(results);
所以响应只是“[]”。
【问题讨论】:
-
http.get 正在异步工作。在收到结果之前,您正在记录结果。
-
但是我正在收集所有回复,但顺序是随机的,不是吗?
标签: javascript arrays node.js get