在玩node.js
的朋友可以瞧瞧。
process.reallyExit(status)
用于进程主动退出,status设置退出的状态码。请注意,reallyExit退出的进程不会调用'exit'事件,下面的代码不会有任何输出:
var
interval
=
setInterval(
function
(){
process.reallyExit(
1
);
},
1000
);
process.on('exit',
function
(){
console.log(
"
hello
"
);
});
process._kill(pid,sig)
用于给指定pid的进程发送指定信号(类似kill命令),这是个“private”方法,你需要慎重使用,下面的代码会杀死自身的进程:
var
pid
=
process.pid
process._kill(pid,
9
);
process.binding(name)
非常有用的方法,很奇怪API文档里竟然没提到,这个方法用于返回指定名称的内置模块。例如下面的代码将打印node_net模块所有的可以调用的方法或变量(很多是文档没有提到的并且没有exports的,后续我会介绍下):
var
binding
=
process.binding('net');
console.dir(binding);
process.dlopen(filename,target)
看源码注释说是用来动态加载node.module的动态链接库的,以后尝试写扩展的时候也许可以尝试一下。
定时器
Node.js的定时器模块的实现是有讲究的,对于超时时间after<=0的callback,会在内部new一个Timer并start(本质
是使用libev的timer机制);但是对于after>0的callback,却不是这样。因为在实际应用中,大多数定时器事件的超时时间都是
一样的,如果每个事件都new一个Timer并start,代价太高。因此node.js采用了一个类似哈希表的方案,将相同after超时时间的定时器
事件组织成链表,以after为key,以链表为value整体构成一张表。每个链表只new一个Timer,这个Timer负责整个链表的定时器事件,
当某个事件超时调用后,利用ev_timer_again来高效地重新设置超时时间。
如果你确实希望对于after>0的定时器也每次new一个Timer来处理,那也可以做到,这就要用到前面提到的process.binding方法来获取timer模块,一个例子:
var
Timer
=
process.binding('timer').Timer;
var
timer
=
new
Timer();
timer.callback
=
function
(){
console.log(
"
callback called
"
);
};
timer.start(
1000
,
0
);
timer.callback
设定timer的回调函数,当超时的时候调用。
timer.start(after,repeat)
启动定时器,在after毫秒之后调用超时回调;如果repeat==0,则自动停止定时器;如果repeat>0,则在repeat毫秒之后再次调用callback,以repeat毫秒为间隔不断重复下去。
ps.这篇blog刚好是我的第499篇blog,不出意外,第500篇还是继续介绍node.js。
分享到:
相关推荐
Node.js 是一个开源、跨平台的 JavaScript 运行环境,它允许开发者在服务器端执行 JavaScript 代码。Node.js 使用 V8 引擎,这是 Google 为 Chrome 浏览器开发的高性能 JavaScript 和 WebAssembly 引擎。Node.js 的...
Node.js 是一个开源、跨平台的 JavaScript 运行环境,它让开发者可以在服务器端执行 JavaScript 代码。Node.js 使用了 Google V8 引擎,这个引擎是为 Chrome 浏览器设计的,因此 Node.js 具有高性能和高效性的特点。...
用于Node.JS的USB库用于与JavaScript / CoffeeScript中的USB设备进行通信的Node.JS库。 这是Christopher Klein的node-usb的重构/重写。 该API不兼容(希望您找到它是Node.JS的USB USB库,用于与JavaScript / ...
Node.js 是一个基于 JavaScript 的服务器端运行平台,允许开发者使用 JavaScript 语言来编写服务器端应用程序。 Node.js 的出现使得 JavaScript 成为服务器端脚本语言。 Node.js 的主要特点是非阻塞 I/O 和事件驱动...
Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...
Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...
Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...
Node.js是一种开源、跨平台的JavaScript运行环境,它允许开发者在服务器端运行JavaScript代码,极大地扩展了JavaScript的应用领域。Node.js基于Chrome V8引擎,因此它具有高性能和高效的特性。标题提到的是Node.js的...
Node.js 是一个开源的、跨平台的 JavaScript 运行时环境。node-v16.20.2-x64、node-v17.9.1-x64、node-v18.20.4-x64、node-v20.17.0-x64、node-v22.6.0-x64
Node.js是一个基于V8引擎的开源、跨平台的JavaScript运行环境,用于执行JavaScript代码。它允许开发者使用JavaScript编写服务器端应用程序,使得前后端语言统一,提高开发效率。Node.js提供了一个非阻塞I/O模型,使...
Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...
Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...
简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球...
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm
在Node.js环境中,JavaScript不仅可以用于服务器端编程,还可以处理文件系统、网络通信、模块化开发等多个方面,因此`polyfill-node`对于那些希望在老版本Node.js上使用新JavaScript特性的开发者来说非常有价值。...
Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...
node 通常指的是 Node.js,这是一个开源的、跨平台的 JavaScript 运行环境,用于服务器端编程。Node.js 允许 JavaScript 在服务器端运行,从而构建高效的网络应用程序。Node.js 基于 Google 的 V8 JavaScript 引擎,...
总的来说,这个项目为移动开发者提供了一种新的可能性,即使用熟悉的JavaScript和Node.js工具链开发原生移动应用,这将降低跨平台开发的门槛,提高开发效率,并促进JavaScript生态系统在移动领域的进一步发展。
Node.JS是一套使用JavaScript语言的后台。它执行Javascript的速度非常快,性能非常好。是近几年来火的公司首选后台语言之一,同时也是前后台人员争先恐后学习的后台语言。网盘,又称网络U盘、网络硬盘,是互联网在线...
Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...