簡體   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