当前位置: 首页 > 面试题库 >

当我更改观看文件时,fs.watch被触发两次

公冶峰
2023-03-14
问题内容
 fs.watch( 'example.xml', function ( curr, prev ) {
   // on file change we can read the new xml
   fs.readFile( 'example.xml','utf8', function ( err, data ) {
     if ( err ) throw err;
     console.dir(data);
     console.log('Done');
   });
 });

输出:

  • 一些数据
  • 完成X 1
  • 一些数据
  • 完成X 2

是我的使用错误还是..?


问题答案:

fs.watchAPI:

  1. 是不稳定
  2. 关于重复的通知,他已经知道“行为”。具体来说,Windows案例是Windows设计的结果,其中单个文件修改可以是对Windows API的多次调用


 类似资料:
  • 问题内容: 我想我的调用或当我指定一个文件被修改浏览器。修改文件后,我该如何“观看”该文件以执行某些操作? 以编程方式看来,这些步骤是..基本上每秒设置一个永无休止的间隔,并缓存初始修改日期,然后每当更改一次调用X时便比较该日期。 问题答案: 如前所述,您可以使用pyinotify: 例如: 这比轮询更有效。内核会告诉您何时进行操作,而无需您不断询问。

  • 问题内容: 如何告诉Jenkins / Hudson仅针对Git树中特定项目的更改触发构建? 问题答案: Git插件有一个选项(排除的区域),可使用正则表达式根据提交中的文件是否与排除的区域正则表达式匹配来确定是否跳过构建。 不幸的是,当前的Git插件目前没有“包含区域”功能(1.15)。但是,有人在GitHub上发布了可在Jenkins和Hudson上运行的补丁,这些补丁实现了所需的功能。 构建

  • 问题内容: 我有一个指令可以遍历链接元素的 children 。 但是,尚未将子级加载到DOM中,因为尚未解析其s表达式。 如何确定父指令知道它的DOM树已更改? 我可以使用,但是感觉不可靠。我也可以用代替,但这不能回答问题,也不是我所需要的。 问题答案: 所以这就是我最终要做的事情: 我发现您可以将函数传递给。从那里,很容易返回想要监视更改的表达式的值。它的工作原理就像在范围上传递属性的键字符串

  • 问题内容: 我正在使用Chrome扩展程序,我想检测用户何时键入URL。我知道: 但是,只要URL更改(例如,页面自动重新加载或用户单击链接等),它就会被调用。 我希望能够仅通过用户输入URL来确定URL是否已更改。 问题答案: 您可以使用(MDN)事件获取此信息。事件侦听器接收属性(MDN),该属性根据导航的原因将是不同的值(MDN)。哪个值,您触发将取决于 正是 您所渴望的东西。对于你的描述,

  • 问题内容: 我有一个div,其内容可能会以各种方式更改:例如,可以通过innerHTML重新加载其整个内容,或者可以通过DOM方法添加节点。反过来,这可能是通过本地javascript发生的,也可能是通过调用jQuery API或其他库间接发生的。 我希望在div的内容改变为执行一些代码,但我 绝对没有控制 上 如何 将改变。确实,我正在设计一个可供其他人使用的小部件,他们可以自由选择自己喜欢的d

  • 寻找最佳实践以获得随时间变化的数据增量。 没有可用的时间戳,无法编程时间戳! 问题:我不确定触发器是否是可行的方法,因为触发器会带来大量的开销。 在考虑开销和性能的情况下,有谁能为DB2增量提供最佳实践建议吗?