Допустим, это мой код (просто пример, который я написал, чтобы показать идею)
var extract = require("./postextract.js");
var rescore = require("./standardaddress.js");
RunFunc();
function RunFunc() {
extract.Start();
console.log("Extraction complete");
rescore.Start();
console.log("Scoring complete");
}
И я не хочу, чтобы rescore.Start () работал до полного extract.Start ( ) закончил. Оба сценария содержат паутину функций внутри них, поэтому обратный вызов, помещенный непосредственно в функцию Start (), не выглядит жизнеспособным, так как конечная функция не возвращает его, и у меня много проблем с пониманием того, как использовать Promises , Как я могу заставить эту работу работать?
Это сценарии, которые extract.Start () начинается и заканчивается. OpenWriter () доступен через множество других функций и потоков, при этом фактический fileWrite.write () находится в другом скрипте, который присоединен к этому (хотя и не нужен для определения конца выполнения. В настоящее время fileWrite.on ('fini * 1012) * ') я хочу, чтобы скрипт был определен как выполненный
module.exports = {
Start: function CodeFileRead() {
//this.country = countryIn;
//Read stream of thate address components
fs.createReadStream("Reference\\" + postValid.country + " ADDRESS REF DATA.csv")
//Change separator based on file
.pipe(csv({escape: null, headers: false, separator: delim}))
//Indicate start of reading
.on('resume', (data) => console.log("Reading complete postal code file..."))
//Processes lines of data into storage array for comparison
.on('data', (data) => {
postValid.addProper[data[1]] = JSON.stringify(Object.values(data)).replace(/"/g, '').split(',').join('*');
})
//End of reading file
.on('end', () => {
postValid.complete = true;
console.log("Done reading");
//Launch main script, delayed to here in order to not read ahead of this stream
ThisFunc();
});
},
extractDone
}
function OpenWriter() {
//File stream for writing the processed chunks into a new file
fileWrite = fs.createWriteStream("Processed\\" + fileName.split('.')[0] + "_processed." + fileName.split('.')[1]);
fileWrite.on('open', () => console.log("File write is open"));
fileWrite.on('finish', () => {
console.log("File write is closed");
});
}
РЕДАКТИРОВАТЬ: я не хочу просто добавлять следующий скрипт в конец предыдущего и впереди go мастер-файл Поскольку я не знаю, как долго это будет и должно быть разработано так, чтобы оно могло принимать дополнительные сценарии после нашего периода разработки.Я не могу просто использовать пакет в его нынешнем виде, потому что время утверждения в компании занимает до двух недель. и мне нужно это немедленно немедленно
ДВОЙНОЕ РЕДАКТИРОВАНИЕ: Это весь мой код, все скрипты и функции написаны мной, поэтому я могу заставить вызываемые скрипты делать то, что нужно