fs-extra 中的同步 vs 异步 vs 异步/等待 - NodeJS

fs-extra 简介

在继续使用 fs-extra 之前,必须对 fs 文件系统有基本的了解。fs-extra 是 fs 文件系统的扩展,比它有更多的方法。它添加了一些在 naive fs 模块中没有的文件方法系统。fs-extra 为 fs 方法添加了 promise 支持,因此比 fs 更好。

安装

npm install fs-extra

语法

fs-extra 是原生 fs 文件系统的替代品。fs 中的所有方法也都附加到 fs-extra。因此,您不需要再次包含 fs。

const fs = require('fs-extra');

默认情况下,fs-extra 提供的大多数方法都是异步的。如果没有配置任何回调,异步方法将返回一个承诺。

示例

  • 在继续之前检查是否安装了 fs-extra

  • 可以使用以下命令查看是否安装了fs-extra

npm ls fs-extra

  • 创建一个copyFiles.js并将以下代码片段复制粘贴到该文件中

  • 现在,运行以下命令来运行以下代码片段

node copyFiles.js

代码片段-

// fs-extra 导入使用
const fs = require('fs-extra')

// 使用带有承诺的异步复制文件:
fs.copy('/tmp/myfile, '/tmp/myAsyncNewfileWithPromise')
   .then(() => console.log('Async Promise Success!'))
   .catch(err => console.error(err))

// 使用带有回调的异步复制文件:
fs.copy('/tmp/myfile', '/tmp/myAsyncNewfileWithCallback', err => {
   if (err) return console.error(err)
   console.log('Async Callback Success!')
})

// 使用同步复制文件:
try {
   fs.copySync('/tmp/myfile', '/tmp/mySyncNewfile')
   console.log('Sync Success!')
} catch (err) {
   console.error(err)
}

// 使用 Async/Await 复制文件:
async function copyFiles () {
   try {
      await fs.copy('/tmp/myfile', '/tmp/myAwaitFile')
      console.log('Await Success!')
   } catch (err) {
      console.error(err)
   }
}

copyFiles()
console.log("所有文件复制成功!!!")
输出结果
C:\Users\nhooo\> node copyFiles.js
Sync Success!
所有文件复制成功!!!
Async Promise Success!
Await Success!
Async Callback Success!