从大文件stream式传输并创build一个数组

我遇到了highland.js的问题。 我需要从我的stream数据创build一个函数的数组,但不能得到它的工作。 这是我的代码,但requests总是空的。

 var requests = []; _(fs.createReadStream("small.txt", { encoding: 'utf8' })) .splitBy('-----BEGIN-----\n') .splitBy('\n-----END-----\n') .filter(chunk => chunk !== '') .each(function (x) { requests.push(function (next) { Helpers.Authenticate() .then(function (response1) { return Helpers.Retrieve(); }) .then(function (response2) { return Helpers.Retrieve(); }) .then(function () { next(); }); }); }); console.log(requests) async.series(requests); 

只要读高地的文件。 尝试添加.done到您的stream和console.logrequests

 _(fs.createReadStream("small.txt", { encoding: 'utf8' })) .splitBy('-----BEGIN-----\n') .splitBy('\n-----END-----\n') .filter(chunk => chunk !== '') .each(function (x) { requests.push(function (next) { Helpers.Authenticate() .then(function (response1) { return Helpers.Retrieve(); }) .then(function (response2) { return Helpers.Retrieve(); }) .then(function () { next(); }); }); }).done(function(){ console.log(requests); }); 

我只是使用stream事件来连线:

 var stream = fs.createReadStream('small.txt', {encoding: "utf8"}); stream.on('data', (line) => { var lineStr = line.toString(); //Buffer to String /* You code here */ }) stream.on('close', (line) => { console.log(request); })