2017-08-02 5 views
1

Dies ist wahrscheinlich mit anderen asynchronen Funktionen passieren, aber ich bin readline als Beispiel, da das ist das Problem, das ich angetroffen habe.Node.js Ausführen nach Zeile Readline Finishes

Ich habe gerade angefangen mit JS und versucht derzeit, Eingabe von einer Datei über Stdin (<) zu sammeln. Ein Beispiel wäre der Code unten sein:

const readline = require('readline'); 
const rl = readline.createInterface({ 
    input: process.stdin, 
    output: process.stdout, 
    terminal: false 
}); 

rl.on('line', foo); 

function foo(line) { 
    // Code to be iterated by line 
} 

function summary() { 
    // Code to be executed after rl finishes 
} 

Die Frage ist also, wo ich summary Funktion setzen? Nimmt rl.on einen anderen Rückruf, der nach dem Ende ausgeführt wird?

Klarstellung:foo wird jedes Mal aufgerufen, wenn rl eine Zeile liest und summary wird nur einmal aufgerufen, die nach rl Veredelungen

Antwort

1

Sie suchen wahrscheinlich für close event:

rl.on('close', summary); 
+0

Das ‚gewonnen t arbeiten, da in diesem Fall 'summary' aufgerufen wird, wenn jede Zeile gelesen wird. In meinem Fall möchte ich "Zusammenfassung" nur einmal aufrufen, und zwar nachdem "rl" die Ausführung beendet hat. –

+0

Aktualisierte Antwort. – jsalonen

+0

Ja, das ist, was ich gesucht habe. Besten Dank! –

Verwandte Themen