2017年3月23日 星期四

node js 使用 events 及 child_process

// 內建的 events,  產生 events.EventEmitter() 後,就可以定義/註冊(附帶一提: .on() 或 .addListener() 兩者功能相同只是名稱不同而已)事件監聽器(event listenter), 之後透過 .emit() 來觸發該條件, 同時將參數傳遞給 event_Listener(callback function)讓它動起來

// events.js
var events = require('events');
var emitter = new events.EventEmitter();
emitter.on('bing', console.log);//  .on(event_Pattern, event_Listenter)
emitter.emit('bing','go');          //  .emit(event_Pattern, parameters_to_Listener)

// 內建的 child_process,  裡面的 .exec(), .spawn(), .fork()  可以讓指令平行處理, 如果要做自動化程序它是一個很好用的模組
//          .exec()  --> 開啟環境執行另一條系統指令, 可以攜帶 error,stdout.stderr,如有需要, 可以自行處理 callback function
//          .spawn() --> 開啟環境執行另一條系統指令, 使用 events 來處理指令所帶進來的資料
//          .fork()  --> 開啟環境執行另一份 javascript, 並使用 events 來處理指令所帶進來的資料, 其實等同用 .spawn() 開啟環境執行指令前面加上 js 來執行 javascript

// test.js
const process = require('child_process');
for(var i=0; i<2 i="" p="">   var exec = process.exec('js events.js',function(err, stdout, stderr) {    
      if (err)  console.log('stderr: ' + stderr);
      else      console.log(stdout);
   });

   exec.on('exit', function (code) {
      console.log('process exist code='+code);
   });
}

1 則留言:

Unknown 提到...
作者已經移除這則留言。