此选项之一有一些优点吗?
1.
const fs = require('fs')
const testFunc1 = async () => {
fs.writeFileSync('text.txt', 'hello world')
}
2.
const fs = require('fs')
const util = require('util')
const writeFilePromisified = util.promisify(fs.writeFile)
const testFunc2 = async () => {
await writeFilePromisified('text.txt', 'hello world')
}
我知道 writeFile 和 writeFileSync 之间的区别。问题是返回 testFunc1 和 testFunc2 的 Promise 之间是否存在一些差异。那么这和打电话是一样的吗 testFunc1.then(...)//或等待 testFunc1 或者 testFunc2.then(...)//或等待 testFunc2
这两个 promise 将在文件写入完成后实现。
最佳答案
fs
已包含 promisified API不需要promisify
。
const fsPromises = require("fs/promises");
await fsPromises.writeFile(file, data[, options])
基于 Promise 的异步版本需要将其用作基于 Promise 的控制流的一部分,而同步版本则不强制执行此要求。
异步 readFile
/writeFile
是非阻塞的,而同步 readFileSync
/writeFileSync
是阻塞的,但允许更快地完成工作。这在密集 IO 操作期间可能会很明显。
关于node.js - 等待 promise 的 fs.writeFile 与 fs.writeFileSync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53337663/