Ich versuche, eine Datei Zeile für Zeile zu lesen, führen Sie eine Aktion aus, die einen Rückruf hat, und wenn die Funktion beendet Zeilenauslese fortzusetzen. Zum Beispiel:Nodejs - Zeile für Zeile aus Datei lesen, async Aktion für jede Zeile ausführen und reusme
var fs = require('fs');
var readline = require('readline');
var stream = require('stream');
var instream = fs.createReadStream('./phrases.txt');
var outstream = new stream;
var rl = readline.createInterface(instream, outstream);
rl.on('line', function (line) {
rl.pause();
setTimeout(function() {
console.log('resuming');
rl.resume();
}, 2000);
});
war ich unter dem Eindruck, das obige Beispiel sollte grundsätzlich eine Zeile gelesen, warte 2 Sekunden, console.log
und dann in der nächsten Zeile fortgesetzt werden. Was wirklich passiert ist, dass es für die ersten 2 Sekunden wartet und spuckt dann heraus viele console.log
Was über das Hinzufügen von Schlaf so cool (2)? – Dmitri