2017-01-16 5 views
0

Ich möchte einige Informationen aus einer Remote-CSV-Datei mithilfe einer Rückruffunktion lesen. Nicht sicher, wie genau das geht.Array von Node.js-Funktion zurückgeben

Funktion:

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); 
    } 
}) 
} 

Ich mag würde die Funktion und die Schleife durch das Ergebnis-Array nennen.

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

Die for-Schleife wird jedoch nie aufgerufen und das Ergebnis (Raum) scheint leer zu sein.

+0

Sie deklarieren 'var allRoomsArray' –

Antwort

1

Versuchen Sie, wie dieses

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 
    } 
}) 
} 

Sie Callback-Antwort abzurufen gesendet. Rufen Sie also diesen Rückruf innerhalb der async Funktion

+0

Thx, das war es! Rooms.length ist jedoch undefiniert, obwohl es einen Wert hat, wenn ich die Räume im Debugger beobachte – jpsstack