此选项之一有一些优点吗?
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
当文件写入完成时,这两个承诺都将得到实现。
fs
已经包含承诺的API https://nodejs.org/api/fs.html#fs_fspromises_writefile_file_data_options那不需要promisify
.
const fsPromises = require("fs/promises");
await fsPromises.writeFile(file, data[, options])
基于承诺的异步版本要求将其用作基于承诺的控制流的一部分,而同步版本则不强加此要求。
异步readFile
/writeFile
是非阻塞的,同时是同步的readFileSync
/writeFileSync
是阻塞的,但允许更快地完成工作。这在密集 IO 操作期间可能会很明显。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)