3 回答
TA贡献1796条经验 获得超4个赞
当您使用文件系统函数时,请将其用作基于承诺的函数,而不是基于回调的函数。您可以说fs.promises.unlink()
而不是说fs.unlink()
,但请记住,此承诺内置函数是在 Node.js 版本 10 中添加的。因此,如果您使用的是旧版本,则这将不起作用!要在您的代码中使用它,您可以这样做:
await fs.promises.unlink(yourPath)
TA贡献1946条经验 获得超4个赞
您可以“承诺”所有回调风格的函数!
// promisefy this:
fs.unlink('path/file.txt', (err) => {
if (err) throw err;
console.log('path/file.txt was deleted');
});
// to this:
const unlinkPromise = (path) => new Promise((resolve, reject) => {
fs.unlink('path/file.txt', (err) => {
if (err) reject(err);
resolve(path);
});
});
// and then call with await or chain promises
await unlinkPromise('path/file.txt').then((path) => {
console.log(`${path} was deleted`);
});
但正如已经提到的,同步方法不需要等待,这种策略,我会推荐用于承诺级联......
TA贡献1795条经验 获得超7个赞
你不需要等待。
fs.unlink(path, callback)
您创建一个回调
假设“path/file.txt”是一个常规文件。
fs.unlink('path/file.txt', (err) => {
if (err) throw err;
console.log('path/file.txt was deleted');
});
异步的是fs.unlink()。
同步的是fs.unlinkSync()。
https://nodejs.org/api/fs.html#fs_fs_unlink_path_callback
添加回答
举报