[英]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.