从Node中的函数返回数组项

时间:2015-07-13 20:49:39

标签: javascript arrays node.js function

我正在nodeschool.io上学习learnyounode教程,并且已经完成了"Juggling Async"任务。我有以下代码:

.success(function (data, status, headers, config) {
        $scope.currentId = data;
})

当我向脚本传递三个URL时,它返回三个" undefined"消息;但是,当我将以下脚本传递给相同的三个URL时,我得到了预期的数据:

var http=require('http');
var urls = process.argv.slice(2);

var body=[];
var urlstream = [];
var arraySize=urls.length;

for (var i=0; i<arraySize; i++) { 

console.log(getData(i));
}

function getData(i) {
//console.log(urls[i]);
  urlstream[i] = http.get(urls[i], function(response) {
    response.on('data', function(d) {
      body[i]+=d.toString('UTF-8');
    })
    response.on('end', function() {
      //console.log(body[i]);
      return body[i];
    })
    response.on("error", function(err) {
      console.log("error: " + err);
    })
  });
}

虽然我不认为我必须按照我采用的方法完成教程,但有人可以解释为什么后面的代码有效,但当我尝试将其变成函数时并从&#39;身体返回一个元素&#39;数组,它不会返回数据。这是一个范围问题吗?我是Javascript的新手,明确的解释会非常有用。

0 个答案:

没有答案