我试图从我的nodejs文件中读取STDIN PIPE并发出一个POST请求到一个URL,每行给出fom STDIN然后等待响应,读取下一行,发送,等待等nodeJS等待不能promisified的事件
'use strict';
const http = require('http');
const rl = require('readline').createInterface(process.stdin,null);
rl.on('line', function (line) {
makeRequest(line); // I need to wait calling the next callback untill the previous finishes
}).on('close',function(){
process.exit(0);
});
的问题是,rl.on(“线”)将立即从我的管道读取千行,并推出成千上万的请求即刻什么会导致成EMFILE例外。我知道这是非阻塞IO的预期行为,但在这种情况下,不能使用promises/futures,因为.on('line')本身就是一个回调函数,我不能在不丢失输入数据的情况下操作它。 因此,如果回调不能使用,并且超时黑客不够优雅,那么如何才能摆脱nonblockIO的诅咒?
然后堆积在一个数组中并逐行消耗。 – zerkms
我的输入是巨大的,我绝对不想要,也不能将它存储在内存/文件系统中 –