Я создал три метода, как показано ниже в узле JS
function UpdateJson(reqData){
let rawdata = fs.readFileSync('someData.json');
let data = JSON.parse(rawdata);
Object.keys(data).forEach(function(key) {
data[key] = reqData[key];
});
fs.truncateSync('someData.json', 0, function(){});
let jstrData = JSON.stringify(data);
fs.writeFileSync('someData.json', jstrData, function(){});
}
function CreateThemeScss(jFile){
fs.createReadStream(jFile)
.pipe(jsonSass({
prefix: '$theme: ',
}))
.pipe(fs.createWriteStream('sData.scss'));
}
function ExecuteCmd(){
exec('node-sass sData.scss styles.css');
var rdata = fs.readFileSync('styles.css').toString();
return rdata;
}
Я использую вызов этих методов в методе app.post, как и в той же последовательности.Я возвращаю в ответ возвращенный метод rdata
из ExecuteCmd
.
Я вижу, что каждый раз, когда я вызываю API rdata
из метода ExecuteCmd
, то же самое.Я хочу, чтобы указанные выше методы выполнялись синхронно, чтобы CreateThemeScss
выполнялся только после завершения UpdateJson
, а ExecuteCmd
должен выполняться только после завершения CreateThemeScss
, чтобы я получил обновленный rdata
в своем ответе.
Любая помощь приветствуется