fs观看一次单次更改触发两次

时间:2018-10-30 16:47:11

标签: node.js

我刚刚开始使用NodeJS,这是我编写的第一个示例。

Illuminate\Database\Eloquent\Collection {#2929
    all: [
    App\Message {#2947
        id: 3,
        topic: "Dummy Title",
        subject: "Dummy Description",
        created_at: null,
        updated_at: null,
        FoundIn: "topic-subject",
    },
    App\Message {#2940
        id: 4,
        topic: "Dummy Title",
        subject: "Smart Description",
        created_at: null,
        updated_at: null,
        FoundIn: "topic",
    },
    App\Message {#2941
        id: 5,
        topic: "Smart Title",
        subject: "Dummy Description",
        created_at: null,
        updated_at: null,
        FoundIn: "subject",
    },
    ],
}

当我执行const fs = require('fs'); fs.watch('target.txt', () => { console.log('File target.txt just changed..'); }); console.log('Now watching target.txt for changes'); 时,我看到控制台日志发生了两次。

为什么这种奇怪的行为。

我正在使用节点 v8.12.0

1 个答案:

答案 0 :(得分:2)

根据节点fs.watch(filename[, options][, listener])的{​​{3}}:

已知警告

fs.watch API在各个平台上的 100%不一致,并且在某些情况下不可用。仅macOSWindows支持递归选项

此外,Windows具有已知的设计documentation,其中会触发两个回调以写入文件。在类似的帖子issue

中对此进行了验证

fs.watch只是节点上导致错误行为的错误API

希望有帮助!