node等待exec完成,然后才调用下一个exec

时间:2017-08-09 09:36:40

标签: javascript node.js exec readline child-process

我有两个文件一个(readlines.js)是一个逐行读取文件行的​​脚本,第二个(test.txt)文件包含脚本应该执行的行 喜欢:

  

节点/usr/local/server/test/CLI-test.js functionName   ARG1 ARG2 ARG3 ARG4 ARG5

只有在完成此代码后,我才想读取test.txt中的下一行 但似乎所有操作都在同一时间执行。

这是我在readlines.js中的代码

var fs = require('fs'), readline = require('readline');
var exec = require('child_process').exec, child;
var fileTest = process.argv[2] != "" ? './test/'+process.argv[2] : './test/test.txt'; 
var rd = readline.createInterface({
       input: fs.createReadStream(fileTest),
       output: process.stdout,
       console: false
});
rd.on('line', function(line) {
    console.log(line);
    executeCommand(line);
});
function executeCommand(line){
  exec('sudo ' + line,{maxBuffer: 1024 * 500000000}, (err, stdout, stderr) => {
  if (err) {
    console.error(`exec error: ${err}`);
    return;
  }
    console.log(`Number of files ${stdout}`);
  });
}

此外我发现所有操作都在一起发生,因为缓冲区不够大。

0 个答案:

没有答案