为什么Javascript中的bash脚本以相反的顺序执行?

时间:2018-06-18 18:55:13

标签: javascript bash asynchronous

我提前道歉,因为我对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 ====

为什么那些输出的顺序相反?

1 个答案:

答案 0 :(得分:0)

正如Barbar所说,这是因为exec()是异步的。

谢谢大家。