Node.js FSWatcher.noinf vs.persistent = false?

问题描述

我正在研究一个Node模块,该模块大量将程序状态写入文件。由于我在附加模式下使用fs.writestream和autoClose = true来写入文件,因此最终用户可以在主应用程序运行时删除文件(显然,流在每次转储其缓冲区后都会关闭文件)时不时)。我在文件上设置了一个手表(fs.watch),以便我的模块可以重新创建文件并在文件删除文件的先前内容丢失...)时继续前进。我对fs.watch有一些疑问:

  1. 除非指定了watch.unref(),否则我的模块会使应用程序在应用程序完成后仍保留在read-eval-print-loop中。不幸的是,watch.unref()是最近的版本,有些用户的系统上可能没有这种较新版本的节点。问题:我可以依靠{persistent:false}作为fs.watch的选项来获得与.unref()相同的结果,而无需留在REPL中就可以观看吗?据我所知,它们似乎相同。如果没有,.unref / .ref和persistent选项之间有什么区别?

  2. 如果在正常终止后该应用确实保留在REPL中,是否触发了任何事件,该事件允许我的模块执行任何清理活动然后释放REPL?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)