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觸發