繁体   English   中英

在Windows上使用node.js运行同步任务

[英]Run synchronous tasks using node.js on windows

我正在使用Node FFI模块,并试图在Windows上运行同步任务。 我可以使用以下代码成功运行任务。

var ffi=require('ffi')
var nativeC = new ffi.Library("Kernel32", {
"WinExec": ["int32", ["string"]]
});

nativeC.WinExec('ls -lrt');

我认为这是执行同步任务的方式,但是此代码始终在第一个'ls -lrt'命令之后退出; 如果我再链接几个命令,它们将无法工作。 因此,在这里,FFI模块中是否有回调函数,或者是我可以在Windows上的node.js中链接命令的另一种方式,以便它们可以一个接一个地同步运行。

我不确定您是否需要WinExec来运行Windows命令。 正如乔纳森指出的那样,ls不可用。

但是,如果要链接命令,可以使用async.js和exec,如下所示:

var
  async = require('async'); 
  exec = require('child_process').exec,
  commands = [ 'dir /w', 'echo test'];

var executeCommand = function(command, callback){
  exec(command, function (err, stdout, stderr) {
    if(err) return callback(err);
    console.log(stdout);
    callback();
  });
};

async.eachSeries(commands, executeCommand, function(err){
  console.log('error: ' + err);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM