我有一个电子应用程序,在其中我正在写入一个文件。
if( fs.existsSync(envFilepath) ) {
envFile = fs.createWriteStream(envFilepath)
var envs = document.getElementById("envs").value.split(",")
envs.forEach( function(env) {
if( env && env.localeCompare(" ") !== 0 ) {
env = env.trim()
envFile.write(env + '\n')
}
})
envFile.end()
envFile.on('finish', function syncConfigs() {
//perform additional tasks
})
}
有时,数组envs
有元素并且它会写入。在这些时刻,end()
被调用,finish
事件被捕获,我顺利地滚动。但是,有时,envs
可能为空,并且我不会写入该文件。 NodeJS 似乎挂起,因为我没有调用 write()
并且 finish
事件永远不会被调用。
为什么会发生这种情况?对于这种情况有解决方法吗?
最佳答案
如果您使用fs.createWriteStream()
,您应该监听'close'
事件而不是'finish'
事件。
envFile.on('close', () => {
// handle done writing
})
关于javascript - NodeJS - 写入文件有时会完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43358104/