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
console.log("+++");
console.log("0")
var oldData = getOldData("pattern");
console.log("Debug#2: " + oldData);
// ...
// Modifica dei dati
// ...
console.log("6")
console.log("---");
Funzione
getOldData()
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ì:
+++
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:
+++
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?