[英]Is there a way to synchronously execute multiple JavaScript files in node?
因此,在Node中,我可以使用以下命令來執行JavaScript文件:
$ node src/someFile.js
但是,是否有一種方法可以同步執行給定目錄中的所有 JavaScript文件(一個文件執行,然后在下一個文件執行后執行,等等)? 基本上,有沒有一條命令會像
$ node src/firstFile.js
$ node src/secondFile.js
$ node src/thirdFile.js
...
我已經嘗試過類似的命令
$ node src/*.js
但沒有成功。
如果沒有這樣的命令,那么做這樣的最好方法是什么?
我不確定這是否對您有用,因為這是外殼程序的功能,而不是節點運行時的功能。
for f in src/*.js; do node "$f"; done
或在Powershell中:
Get-ChildItem .\*.js | Foreach-Object {
node $_
}
您可以使用spawn從如下節點運行node
進程
(function() {
var cp = require('child_process');
var childProcess = cp.spawn('node', [`src/firstFile.js`]);
此時,您必須添加一些偵聽器:
// now listens events
// Listen for an exit event:
child.on('exit', function(exitCode) {
console.log("Child exited with code: " + exitCode);
return resolve(exitCode);
});
// Listen for stdout data
child.stdout.on('data', function(data) {
console.log(data.toString());
});
// child error
child.stderr.on('data',
function(data) {
console.log('err data: ' + data);
// on error, kill this child
child.kill();
}
);
}).call(this);
當然,您需要在這里序列化執行,但是這很容易,因為您有child.on('exit')
告訴您該過程已結束,因此您可以啟動下一個過程。
在我的示例工作解決方案示例中,請參見控制節點中的多個進程,該示例解決方案在node
中運行多個進程並等待執行結束/加入。
使用POSIX shell:
$ for js in src/*.js; do node "$js"; done
如果從shell調用每個對象都不是硬性要求,那么我將通過shell中的單個節點進程將它們全部拉開。 該節點腳本將:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.