2014-09-22 51 views
1

我有一些Node.js的代碼一樣,如何強制節點同步登錄到控制檯

console.log("diagnostic information"); 
nasty_stuff_fails_now(); 

由於執行console.log異步執行,但「nasty_stuff_fails_now()」事件循環的下一個前打勾失敗我從來沒有看到診斷信息。在執行na​​sty_stuff_fails_now()之前,如何將輸出推送到控制檯?理想情況下,我想同步推送到控制檯。在調試過程中性能會受到影響。

+0

你也可以使用'的try ... catch()'錯誤調試/處理 – Ravi 2014-09-22 07:32:20

+0

這Node.js的版本,您使用的? – 2014-09-22 08:16:36

+0

node -v - > v0.10.31 – 2014-09-22 08:30:47

回答

0

我會爭辯說,它使語義上和邏輯上更明智,讓你使用try catch。

try { 
    nasty_stuff_fails_now(); 
} catch(exception) { 
    //log diagnostic for failure 
} 

console.log是原子的,所以它應該在運行失敗的代碼之前打印所有內容。如果你有一個自定義日誌功能,那實際上是做異步事情。那麼我建議你回覆一個承諾。

logMyAsyncStuff().then(nasty_stuff_fails_now());