如何强制节点同步登录到控制台

时间:2014-09-22 07:28:09

标签: node.js

我有一些像这样的node.js代码

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

由于console.log是异步执行的,但是" nasty_stuff_fails_now()"在事件循环的下一个滴答之前失败我从未看到诊断信息。在nasty_stuff_fails_now()执行之前,如何将输出推送到控制台?理想情况下,我想同步推送到控制台。在调试过程中,性能损失是可以接受的。

1 个答案:

答案 0 :(得分:0)

我认为,对于你来说,使用try catch在语义和逻辑方面都更有意义。

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

console.log是原子的,因此它应该在运行失败的代码之前打印所有内容。如果您有自定义日志功能,那实际上就是异步。然后我建议你回复一个承诺。

logMyAsyncStuff().then( nasty_stuff_fails_now() );