Salve a tutti, sto provando a scrivere uno script in Node.js che possa prendere dati da un file di testo, analizzarli e modificarli a piacimento.
Purtroppo però non capisco perché l'esecuzione dei comandi non avviene proprio in ordine cronologico e non capisco a cosa sia dovuto.

Ho usato diversi console.log() al fine di far capire cosa intendo, di seguito la prima parte del codice
codice:
console.log("+++");
    console.log("0")
    var oldData = getOldData("pattern");
    console.log("Debug#2: " + oldData);
    // ...
    // Modifica dei dati
    // ...
    console.log("6")
    console.log("---");

Funzione getOldData()

codice:
function getOldData(pattern) {
    console.log("1")
    var matchDataOfFunction = []
    var fs = require('fs');
    try {
        fileData = fs.readFileSync(path, 'utf8');
        regex = new RegExp(pattern + '\\s\\{'); 
        match = fileData.match(regex);
        console.log("2")
        if (match != null) { // Exist
            const lineReader = require('line-reader');
            lineReader.eachLine(path, function (line) {
                console.log("3")
                if (line.includes(pattern)) {
                    console.log("4")
                    regexp = /\{(\w+)\}/g;
                    matchDataOfFunction = [...line.match(regexp)];
                    console.log("Debug#C: " + matchDataOfFunction);
                    return matchDataOfFunction;
                }
            });
        }

    } catch (err) { console.log(err) }
    console.log("5")
    console.log("Debug#B: " + matchDataOfFunction)
    return matchDataOfFunction;
}
Secondo quanto scritto il risultato dovrebbe essere così:
codice:
+++
0
1
2
3
3
3
4
Debug#C: <dati>
5
Debug#B: <dati>
Debug#2: <dati>
6
---
Ma l'output che ottengo è questo qua:
codice:
+++
0
1
2
5
Debug#B: <dati>
Debug#2: <dati>
6
---
3
3
3
4
Debug#C: <dati>
Qualcuno può aiutarmi a capire che succede?