我需要在我的应用程序中添加对此功能的支持。
我当前的实现非常简单:

            this.watcher.on("add", (pathName: string) => {
                this.sendNotifyAction(new NotifyAction(PathEvent.Add, pathName));
            }).on("change", (pathName: string) => {
                this.sendNotifyAction(new NotifyAction(PathEvent.Change, pathName));
            }).on("unlink", (pathName: string) => {
                this.sendNotifyAction(new NotifyAction(PathEvent.Delete, pathName));
            }).on("ready", () => {
                this.sendReadinessNotification();
            });

现在我想拥有类似的东西:
private acceptedFileExtensions: string[] = ['.txt', '.docx', '.xlx', ...]

并在Chokidar中使用此扩展数组。因此,如果受监视目录中的文件具有列表的扩展名-发送通知(如果没有)-不执行任何操作。

我看到了类似的问题https://stackoverflow.com/questions/40468608/use-chokidar-to-watch-for-specific-file-extension#=,但这并不是我真正需要的。

在回调函数中进行筛选对我来说并不好,但我看不到其他变体。请指教。

谢谢你。

最佳答案

谢谢@ robertklep,chokidar可用于数组。
所以我的代码看起来像:

private buildWildcardList(path:string): string[] {
        let result: string[] = [];
        _.each(this.acceptedFileExtensions, (extension: string) => {
           result.push(path + '/**/*' + extension);
        });

       return result;
    }

let wildcardList: string[] = this.buildWildcardList(path);
this.watcher = chokidar.watch(wildcardList, watchOptions);

10-05 18:51