我提前道歉,因为我对Javascript知之甚少,并且在Bash方面有更多经验。 我需要导入几个脚本并让JS运行它
const exec = require('child_process').exec;
var process = function (done) {
var script1 = exec('sh script1.sh',
(error, stdout, stderr) => {
utils.output(`${stdout}`);
utils.output(`${stderr}`);
if (error !== null) {
utils.output(`exec error: ${error}`);
}
});
var script2 = exec('sh script2.sh',
(error, stdout, stderr) => {
utils.output(`${stdout}`);
utils.output(`${stderr}`);
if (error !== null) {
utils.output(`exec error: ${error}`);
}
});
utils.output(script1);
utils.output(script2);
}
script1.sh:
echo "==== script 1 ===="
script2.sh:
echo "==== script 2 ===="
输出:
==== script 2 ====
==== script 1 ====
为什么那些输出的顺序相反?
答案 0 :(得分:0)
正如Barbar所说,这是因为exec()是异步的。
谢谢大家。