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()
Secondo quanto scritto il risultato dovrebbe essere così: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; }
Ma l'output che ottengo è questo qua:codice:+++ 0 1 2 3 3 3 4 Debug#C: <dati> 5 Debug#B: <dati> Debug#2: <dati> 6 ---Qualcuno può aiutarmi a capire che succede?codice:+++ 0 1 2 5 Debug#B: <dati> Debug#2: <dati> 6 --- 3 3 3 4 Debug#C: <dati>

Rispondi quotando
