节点进程如何按顺序运行

时间:2015-05-28 03:07:20

标签: node.js shell gulp

节点进程是异步的,但这些代码是如何按顺序运行的?

shell代码:

#!/usr/bin/env bash

cd app_en_us && gulp transformMarkdown &&
echo 'Transform EN success!'

gulp code:

gulp.task('transformMarkdown', function(){
var process = require('child_process');

process.exec('cd $SLATE && bundle exec middleman build && echo "transform markdown success!"\
', consoleMsg);

});

每次运行shell时,它都会输出"变换markdown成功!" ,然后输出"转换EN成功!&#34 ;; 为什么不"改变EN的成功!"然后"改变降价成功!" ?

1 个答案:

答案 0 :(得分:0)

Node进程本身不是异步的。 (但节点中的很多很多东西都是异步的。)

process.exec()运行它的回调之前,Node进程不会将控制权返回给bash shell。所以你的回调在你的下一个bash命令之前执行。它不是一个守护进程,也不会强迫自己在后台运行。