node.js中的console.log/debug/warn/error
是异步的吗?我的意思是,javascript代码的执行会暂停,直到内容打印到屏幕上,还是会在以后的阶段打印出来?
此外,我还想知道,如果console.log在其崩溃节点后立即执行语句,是否有可能不显示任何内容。
发布于 2011-03-01 15:21:58
console.warn()和console.error()被阻塞。在基础系统调用成功之前,它们不会返回。
是的,程序有可能在写入stdout的所有内容都被刷新之前退出。process.exit()将立即终止节点,即使仍有对标准输出的排队写入。您应该使用console.warn来避免此行为。
发布于 2018-03-27 16:02:11
Console.log在windows中是异步的,而在linux/mac中是同步的。为了使console.log在windows中同步,可以在index.js文件中的代码开头写下这一行。此语句后的任何console.log都将被解释器视为同步。
if (process.stdout._handle) process.stdout._handle.setBlocking(true);
发布于 2021-06-07 20:27:43
您可以将其用于同步日志记录:
const fs = require('fs')
fs.writeSync(1, 'Sync logging\n')
https://stackoverflow.com/questions/5127532
复制相似问题