如何强制节点同步登录到控制台
问题描述:
我有一些Node.js的代码一样,如何强制节点同步登录到控制台
console.log("diagnostic information");
nasty_stuff_fails_now();
由于执行console.log异步执行,但“nasty_stuff_fails_now()”事件循环的下一个前打勾失败我从来没有看到诊断信息。在执行nasty_stuff_fails_now()之前,如何将输出推送到控制台?理想情况下,我想同步推送到控制台。在调试过程中性能会受到影响。
答
我会争辩说,它使语义上和逻辑上更明智,让你使用try catch。
try {
nasty_stuff_fails_now();
} catch(exception) {
//log diagnostic for failure
}
console.log是原子的,所以它应该在运行失败的代码之前打印所有内容。如果你有一个自定义日志功能,那实际上是做异步事情。那么我建议你回复一个承诺。
logMyAsyncStuff().then(nasty_stuff_fails_now());
你也可以使用'的try ... catch()'错误调试/处理 – Ravi 2014-09-22 07:32:20
这Node.js的版本,您使用的? – 2014-09-22 08:16:36
node -v - > v0.10.31 – 2014-09-22 08:30:47