Console
Stability:4 确定的api
为了在标准输入流和标准错误流中输出,在大部分的浏览器中都提供了控制台对象的函数功能,这里的输出是发送给标准输出或者标准错误输出
当流的目的地是终端或者文件的时候这些控制台函数是同步的。当目的地是管道流的时候是不同步的
在下面的例子中,当标准错误阻塞的时候标准输出流是不阻塞的
$ node script
.js
2>error
.log
|tee info
.log
在日常的应用中,除非你记录大量的数据,否则,你不必为阻塞、不阻塞二分法担心
Console.log([data],[…])
在标准输出中打印新的一行,这个函数将会提供一个累死printf的多参数类型,比如
console
.log('count: %d',count
);
如果格式元素在第一个参数中没发现那么util.inspect将会用在每一个参数上,查看util.format()获取更多的信息
console.info([data],[...])#
Same as console.log
.
console.error([data],[...])#
Same as console.log
but prints to stderr.
console.warn([data],[...])#
Same as console.error
.
Console.dir(obj)
将util,inspect作用在obj上,并将结果打印到标准输出中
Console.time(label)
标记一个时间点
Console.timeEnd(label)
结束解释器,记录输出,示例
console
.time('100-elements');
for(var
i
=0;
i
<100;
i
++){
;
}
console
.timeEnd('100-elements');
console.trace(label)
打印堆栈的信息到标准错误输出的正确位置
Console.assert(expression,[message])
就像assert.ok()一样,当一个表达式被评估为false并抛出了AssertionError错误消息
Timers
Stability: 5 – Locked
所有的定时器函数都是全局的,你不必通过require获取这些模块使用
setTimeout(callback, delay, [arg], […])
在delay毫秒之后运行一个回调函数,返回timeoutId被clearTimeout()使用,你也可以传递参数给回调函数
你的回调函数将不会在延迟时间内运行,Node.js并没有保证回调函数将会被调用的确切的时间,也没有指定必须在回调函数内运行的代码,这个函数会在接近指定的时间点运行
clearTimeOut(timeoutId)
防止超时触发
SetInterval(callback, delay,[arg], […])
在每一个delay时间端内重复运行回调函数,返回一个intervalId被clearInterval()调用,你也可以传递参数给回调函数
clearInterval(intervalId)
停止一个间隔触发
Unref()
由setTimeout和setInterval返回的不确定值拥有一个timer.unref方法可以允许你创建一个定时器但是如果他是唯一个留在事件循环内的东西将不会让程序继续运行,unref只能被调用一次,再次调用无效
对于setTimeout()当你用unref穿件一个分离的定时器将会唤醒事件循环,创建太多的timer将会对事件循环造成不好的影响
Ref()
如果你之前就用unref创建了定时器那么你可以调用ref来明确的请求定时器持有的程序打开,如果计时器已经调用ref(),那么再次调用无效
SetImmediate(callback, [arg], […])
在setTimeout和setInterval之前并在I/O回调事件之后安排立即执行回调函数,返回immediateId被clearImmediate函数调用。你也可以向回调函数传递参数。
立即函数是按队列被创建,并且将会删除在每次被迭代之后,这个函数和实现队列迭代回调process.maxTickDepth的process.nextTick不同,在运行一个队列迭代确保I/O不会停止之后setImmediate将会被调入事件循环,当命令保持执行,其他的I/O事件可以运行在安排两个immediate回调函数之间
ClearImmediate(immediateld)
停止immediate触发