fsExtra.pathExists和fsExtra.exists有什么区别?

3

我知道fs中的exists已经被弃用,但是在fs-extra中仍然可以使用。

我同时使用了fsExtra.pathExists和fsExtra.exists。

但我找不到它们之间的区别。

它们执行的操作是相同的。

1个回答

4

这两种方法之间没有太大区别。

fs-extrafs的超集,继承了所有它的方法,所以fsExtra.existsfs.exists是相同的。正如您所说,它已弃用。

exists()pathExists()之间的区别在于函数的签名

与fs.exists类似,但具有正常的回调签名(err,exists)。

在内部,fs原生模块使用try catch块,而fs-extra使用Promise样式。它们都使用fs.access()方法来确定指定的文件是否可访问。

是的,它们都有相同的用途。


fsExtra.exists和fsExtra.pathExists都返回Promise。因此,我认为它们是相同的。 - Kuru
抱歉,现在我明白你的意思了。我会在问题上进行编辑以确认。 - Kuru
基本上,pathExists()的回调版本添加了err参数,而exists()则没有。正如文档中所说,“此回调的参数与其他Node.js回调不一致”。这就是为什么它被弃用的原因。 - TGrif
非常感谢。但我不明白为什么fs.exists回调与其他Node.js回调不一致,而fsExtra.pathExists回调与其他Node.js回调一致。我认为它们没有区别。 - Kuru
在Node.js中,回调函数通常需要两个参数:(err, data)fs.exists只有一个参数。正如文档所述:“通常,Node.js回调的第一个参数是一个err参数,后面可以跟其他参数。fs.exists()回调只有一个布尔参数。” - TGrif
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接