Javascript 如何在文件系统模块中使用async/await
如何将async/await语法与Javascript 如何在文件系统模块中使用async/await,javascript,node.js,Javascript,Node.js,如何将async/await语法与fs.unlink()结合使用来删除具有给定路径的文件。您不需要等待 fs.unlink(路径,回调) 您可以创建一个回调 假设“path/file.txt”是一个常规文件 fs.unlink('path/file.txt', (err) => { if (err) throw err; console.log('path/file.txt was deleted'); }); 异步的是fs.unlink() 同步的是fs.unlinkSync(
fs.unlink()
结合使用来删除具有给定路径的文件。您不需要等待
fs.unlink(路径,回调)
您可以创建一个回调
假设“path/file.txt”是一个常规文件
fs.unlink('path/file.txt', (err) => {
if (err) throw err;
console.log('path/file.txt was deleted');
});
异步的是fs.unlink()
同步的是fs.unlinkSync()
使用文件系统函数时,请将其用作基于承诺的函数,而不是基于回调的函数。您可以说
fs.promises.unlink()
,而不是说fs.unlink()
,但请记住,此promise内置函数是在Node.js版本10中添加的。因此,如果您使用的是旧版本,这将无法工作!
要在代码中使用它,可以执行以下操作:
await fs.promises.unlink(yourPath)
您可以“承诺”所有回调函数
// 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`);
});
但如前所述,同步方法不需要等待,我建议使用promise cascades…
取消链接同步
块,这样您就不需要使用async/await。您可以使用来打开取消链接
(或任何其他错误首先回调最后一个函数)变成一个可以等待的承诺。fs.unlinkSync
是同步的,顾名思义,因此不需要async/await
。你为什么这么问?不过我不想回电话