如何解决完成第一个命令后,节点exec bash命令
使用Node自动化我的某些bash进程。
const { exec } = require("child_process");
let buildCommand = "docker build -t vm1:v1 ./nginx1 "
let runCommand = "docker run -d -p 6001:6001 --name clientvm1 vm1:v1"
//run first command
exec(buildCommand,(error,stdout,stderr) => {
if (error) {
console.log(`error: ${error.message}`);
return;
}
if (stderr) {
console.log(`stderr: ${stderr}`);
return;
}
console.log(`stdout: ${stdout}`);
});
//run second command
exec(runCommand,stderr) => {
if (error) {
console.log(`error: ${error.message}`);
return;
}
if (stderr) {
console.log(`stderr: ${stderr}`);
return;
}
console.log(`stdout: ${stdout}`);
});
让第二条命令等待第一条命令完成的最佳方法是什么?
解决方法
我当然不是专家,但是也许您可以将第二种方法包装在异步方法中,然后等待第一种方法进入内部?
method1() {
return new Promise((resolve,reject) => {
resolve(exec(buildCommand));
}).catch((err) => throw new Error(err));
}
async method2() {
await method1();
exec(runCommand);
}
这可能远非万无一失,但我认为它应该可以满足您的需求。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。