从Node.js函数返回数组

时间:2017-01-16 11:35:23

标签: node.js

我想使用回调函数从远程CSV文件中读取一些信息。不确定,究竟是怎么做到的。

功能

function getRoomsFromCSV(allRoomsArray) {
  var request = require('request');
  request('http://localhost:3333/rooms.csv', function (error, response, body) {
    if (!error && response.statusCode == 200) {
...
      allRoomsText = allRoomsText.substr(0,allRoomsText.length-1) + ']}';
      var allRoomsArray = JSON.parse(allRoomsText);
  }
 })
}

我想调用函数并遍历结果数组。

 var rooms = [];
 getRoomsFromCSV( function (rooms) {
   for(var i = 0; i < rooms.length; i++) {
      console.log("i:",i);
  }

但是,永远不会调用for循环,结果(空间)似乎是空的。

1 个答案:

答案 0 :(得分:1)

试试这个

function getRoomsFromCSV(allRoomsArray) {
  var request = require('request');
  request('http://localhost:3333/rooms.csv', function (error, response, body) {
    if (!error && response.statusCode == 200) {
...
      allRoomsText = allRoomsText.substr(0,allRoomsText.length-1) + ']}';
      allRoomsArray(JSON.parse(allRoomsText)); //response params to callback
  }
 })
}

您发送了回调以检索回复。所以在async函数

中调用该回调