Обновление: я добавил короткую паузу после записи в файл, только тогда сработали команды оболочки.
async function testRun() {
await createInsertCurlReq.createInsertCurlReq(process.argv[2]);
await timeout(3000);
shell.chmod("+x", "./curl.sh");
shell.exec("./curl.sh");
}
}
Оригинальный вопрос
Мой .then()
блок после createInsertCurlReq.createInsertCurlReq(process.argv[2])
не запускается.Как мне переписать это так, чтобы оно работало?Я заметил, что если я не удаляю файл и просто добавляю файл, скрипт запускается.
async function testRun() {
if (fs.existsSync('./curl.sh')) {
shell.rm('-rf', './curl.sh');
}
createInsertCurlReq.createInsertCurlReq(process.argv[2]).then(() => {
shell.chmod('+x', './curl.sh');
shell.exec('./curl.sh')
return
})
}
}
curlCreation.js
function createInsertCurlReq(filePath) {
return utils
.readJSONFileOnDisk(filePath)
.then(data => {
obj = JSON.parse(data);
let resultArr = [];
for (let key in obj) {
for (let innerKey in obj[key]) {
let arrayNew = {};
arrayNew[key] = obj[key][innerKey].resolved;
resultArr.push(arrayNew);
}
}
return resultArr;
})
.then(data => {
if (!fs.existsSync("./curl.sh")) {
shell.touch("./curl.sh");
}
return data;
})
.then(data => {
for (let i = 0; i < data.length; i++) {
for (let key in data[i]) {
fs.appendFile(
"curl.sh",
`curl -X POST -H "xxx",
function(err) {
if (err) throw err;
}
);
}
}
});
}
module.exports = { createInsertCurlReq: createInsertCurlReq };