为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 async/await 与文件系统模块一起使用

如何将 async/await 与文件系统模块一起使用

芜湖不芜 2024-01-18 15:53:32
我将如何使用 async/await 语法来fs.unlink()删除具有给定路径的文件。
查看完整描述

3 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

当您使用文件系统函数时,请将其用作基于承诺的函数,而不是基于回调的函数。您可以说fs.promises.unlink()而不是说fs.unlink(),但请记住,此承诺内置函数是在 Node.js 版本 10 中添加的。因此,如果您使用的是旧版本,则这将不起作用!要在您的代码中使用它,您可以这样做:

await fs.promises.unlink(yourPath)


查看完整回答
反对 回复 2024-01-18
?
绝地无双

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`);

});

但正如已经提到的,同步方法不需要等待,这种策略,我会推荐用于承诺级联......


查看完整回答
反对 回复 2024-01-18
?
一只萌萌小番薯

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


查看完整回答
反对 回复 2024-01-18
  • 3 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信