我有一些像这样的node.js代码
console.log("diagnostic information");
nasty_stuff_fails_now();
由于console.log是异步执行的,但是" nasty_stuff_fails_now()"在事件循环的下一个滴答之前失败我从未看到诊断信息。在nasty_stuff_fails_now()执行之前,如何将输出推送到控制台?理想情况下,我想同步推送到控制台。在调试过程中,性能损失是可以接受的。
答案 0 :(得分:0)
我认为,对于你来说,使用try catch在语义和逻辑方面都更有意义。
try {
nasty_stuff_fails_now();
} catch( exception ) {
//log diagnostic for failure
}
console.log是原子的,因此它应该在运行失败的代码之前打印所有内容。如果您有自定义日志功能,那实际上就是异步。然后我建议你回复一个承诺。
logMyAsyncStuff().then( nasty_stuff_fails_now() );