节点进程是异步的,但这些代码是如何按顺序运行的?
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的成功!"然后"改变降价成功!" ?
答案 0 :(得分:0)
Node进程本身不是异步的。 (但节点中的很多很多东西都是异步的。)
在process.exec()
运行它的回调之前,Node进程不会将控制权返回给bash shell。所以你的回调在你的下一个bash命令之前执行。它不是一个守护进程,也不会强迫自己在后台运行。