node fs.readFile 和fs.promises.readFile 区别

1,010 阅读1分钟

fs.promises 模块是 Node.js v10.0.0 引入的一个新特性,它提供了对文件系统操作的 Promise 风格封装。相比于传统的回调风格的 fs.readFile,使用 fs.promises.readFile 可以更方便地进行异步操作。 主要区别如下:

  1. fs.promises.readFile 返回一个 Promise 对象,可以使用 async/await 或 .then/.catch 进行异步处理,而 fs.readFile 需要传入回调函数进行处理。
  2. 使用 fs.promises 可以使代码更加简洁和易读,不需要显式地定义回调函数,可以直接在函数中使用 await 关键字处理异步操作。
  3. fs.promises 还提供了其他方法,如 fs.promises.writeFilefs.promises.readdir 等,都是使用 Promise 进行封装的。

举个例子,使用 fs.promises 进行文件读取:

const fs = require('fs').promises

const readData = async () =>{
    try{
        const data = await  fs.readFile("path/text.txt",'utf-8')
        console.log(data)
    }catch(error){
        console.log(error)
    }
}
readData()

使用 fs.readFile 进行文件读取

const fs = require('fs')
const readData = () =>{
    fs.readFile('path/text.txt','utf-8',(error,data) =>{
        if(error){
            console.log(error)
        }else{
            console.log(data)
        }
    })
}