writeSync() 仅在存在 console.log 时写入控制台 (node.js)
writeSync() only writes to the console when console.log is present (node.js)
采用以下片段:
try {
fs = require('fs');
fs.writeSync(0, 'Trying now...');
fs.writeSync(0, 'worked!\r');
}
catch(error){}
照原样,它不会输出到控制台,但是
try {
fs = require('fs');
fs.writeSync(0, 'Trying now...');
fs.writeSync(0, 'worked!\r');
console.log();
}
catch(error){}
将输出 "Trying now... worked!" 到控制台。这到底是怎么回事?
刚刚意识到这是因为我使用的是 \r 而不是 \n
您正在写入文件描述符但没有刷新它。写一个换行符(\n
而不是 \r
)确实会导致 stdout 刷新它的缓冲区,以及一个强制它的 console.log()
调用。
采用以下片段:
try {
fs = require('fs');
fs.writeSync(0, 'Trying now...');
fs.writeSync(0, 'worked!\r');
}
catch(error){}
照原样,它不会输出到控制台,但是
try {
fs = require('fs');
fs.writeSync(0, 'Trying now...');
fs.writeSync(0, 'worked!\r');
console.log();
}
catch(error){}
将输出 "Trying now... worked!" 到控制台。这到底是怎么回事?
刚刚意识到这是因为我使用的是 \r 而不是 \n
您正在写入文件描述符但没有刷新它。写一个换行符(\n
而不是 \r
)确实会导致 stdout 刷新它的缓冲区,以及一个强制它的 console.log()
调用。