我試圖從我的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
我的輸入是巨大的,我絕對不想要,也不能將它存儲在內存/文件系統中 –