fs.readFile() 是异步函数吗?

时间:2021-06-20 14:05:26

标签: node.js

我假设 NO 因为它返回一个 void 而不是 Promise<void>,但是,文档声明了以下句子:

异步读取文件的全部内容。

如果不是异步函数,这个函数如何异步读取文件?

3 个答案:

答案 0 :(得分:0)

它是异步的。

它不返回任何东西(更不用说承诺了(并且承诺被解析为无效(无)是毫无意义的)。

它接受一个回调,当结果可用时将调用该回调。

the documentation 明确表示:

<块引用>

异步读取文件的全部内容。

并有一个如何使用它的例子:

<块引用>
import { readFile } from 'fs';

readFile('/etc/passwd', (err, data) => {
  if (err) throw err;
  console.log(data);
});

A version that returns a promise 也可用。

答案 1 :(得分:0)

是的,它是一个异步函数,因为它需要一个回调,并在数据准备好时调用回调函数。 这就是为什么它是异步的。

文档中的示例:

readFile('/etc/passwd', (err, data) => {
  if (err) throw err;
  console.log(data);
});

答案 2 :(得分:0)

fs.readfile 是异步的,稍后可以通过调用您应该为其指定的回调返回结果:

fs.readFile(path[, options], callback)

因此,如果您对在此调用后立即(在下一行)调用 readFile 的结果不感兴趣,您可以使用它。否则使用返回 Promise

readFile 包中的 fs/promises