最新版本号[免费下载]

NodeJS入门系列之Process 进程

作者:本站编辑 发布时间:2015-11-24 来源:本站原创 点击数:

Event: ‘exit’ 事件:’exit’

  1. function () {}

当进程对象要退出时会触发此方法,这是检查模块状态(比如单元测试)的好时机。当’exit’被调用完成后主事件循环将终止,所以计时器将不会按计划执行。
监听exit行为的示例:

process.on(‘exit‘, function () {
  process.nextTick(function () {
   console.log(‘This will not run‘);
  });
  console.log(‘About to exit.‘);
});
Event: ‘uncaughtException’ 事件:’uncaughtException’
function (err) { }

当一个异常信息一路冒出到事件循环时,该方法被触发。如果该异常有一个监听器,那么默认的行为(即打印一个堆栈轨迹并退出)将不会发生。
监听uncaughtException事件的示例:

process.on(‘uncaughtException‘, function (err) {
  console.log(‘Caught exception: ‘ + err);
});
 
setTimeout(function () {
  console.log(‘This will still run.‘);
}, 500);
 
// Intentionally cause an exception, but don’t catch it.
nonexistentFunc();
console.log(‘This will not run.‘);

注意:就异常处理来说,uncaughtException是一个很粗糙的机制。在程序中使用try/catch可以更好好控制程序流程。而在服务器编程中,因为要持续运行,uncaughtException还是一个很有用的安全机制。

Signal Events 信号事件

function () {}

该事件会在进程接收到一个信号时被触发。可参见sigaction(2)中的标准POSIX信号名称列表,比如SIGINT,SIGUSR1等等。

监听 SIGINT的示例:

// Start reading from stdin so we don’t exit.
process.stdin.resume();
 
process.on(‘SIGINT‘, function () {
  console.log(‘Got SIGINT.  Press Control-D to exit.‘);
});

在大多数终端程序中,一个简易发送SIGINT信号的方法是在使用Control-C命令操作。

process.stdout
一个指向标准输出stdout的Writable Stream可写流。
示例:console.log的定义。

console.log = function (d) {
  process.stdout.write(d + ‘\n‘);
};

process.stderr
一个指向错误的可写流,在这个流上的写操作是阻塞式的。

process.stdin
一个到标准输入的可读流Readable Stream。默认情况下标准输入流是暂停的,要从中读取内容需要调用方法process.stdin.resume()。


本文责任编辑: 加入会员收藏夹 点此参与评论>>
复制本网址-发给QQ/微信上的朋友
AI智能听书
选取音色