节点如何按顺序处理 运行
how node process run in sequence
节点进程是异步的,但是这些代码如何运行顺序?
shell代码:
#!/usr/bin/env bash
cd app_en_us && gulp transformMarkdown &&
echo 'Transform EN success!'
gulp代码:
gulp.task('transformMarkdown', function(){
var process = require('child_process');
process.exec('cd $SLATE && bundle exec middleman build && echo "transform markdown success!"\
', consoleMsg);
});
每次我运行 shell,都会输出"transform markdown success!",然后输出put "Transform EN success!";
为什么不 "Transform EN success!" 然后 "transform markdown success!" ?
Node 进程本身不是异步的。 (不过, 节点中的很多很多东西都是异步的。)
Node 进程不会 return 控制 bash shell 直到 process.exec()
运行 它的回调。所以你的回调在你的下一个 bash 命令之前执行。它不是守护进程,不会强迫自己在后台 运行。
节点进程是异步的,但是这些代码如何运行顺序?
shell代码:
#!/usr/bin/env bash
cd app_en_us && gulp transformMarkdown &&
echo 'Transform EN success!'
gulp代码:
gulp.task('transformMarkdown', function(){
var process = require('child_process');
process.exec('cd $SLATE && bundle exec middleman build && echo "transform markdown success!"\
', consoleMsg);
});
每次我运行 shell,都会输出"transform markdown success!",然后输出put "Transform EN success!"; 为什么不 "Transform EN success!" 然后 "transform markdown success!" ?
Node 进程本身不是异步的。 (不过, 节点中的很多很多东西都是异步的。)
Node 进程不会 return 控制 bash shell 直到 process.exec()
运行 它的回调。所以你的回调在你的下一个 bash 命令之前执行。它不是守护进程,不会强迫自己在后台 运行。