Я вызываю функцию на стороне сервера, которая открывает CSV-файл и ищет строку в каждой строке.В случае события close функция должна вернуть массив, содержащий первые 5 совпадений строк из файла csv (в первом столбце).Однако, кажется, что массив недоступен вне функции (возможно, из-за асинхронного поведения):
index.js
function calling_function()
{
var a_string = "foo";
var array = database_search(a_string);
console.log(array);
}
function database_search(a_string)
{
var result = ["", "", "", "", ""];
var csv_file = readline.createInterface({
input: fs.createReadStream(__dirname + '/Static/a_file.csv')
});
var cntr = 0;
csv_file.on('line', function (line) {
if(line.indexOf(a_string) > -1)
{
if(cntr < 5)
{
result[cntr] = line.split(",")[0];
}
else
{
csv_file.close();
}
cntr++;
}
});
csv_file.on('close', function() {
return result; // not returning result array
});
}
Что было бы правильным способомполучить доступ к массиву вне readline при событии закрытия?