假设我有一个包含多个文件路径的数组。我想异步删除这些文件。
var files = ['file1.txt', 'file2.txt'];
fs.unlink(..., callback())
我遇到了这个解决方案 Delete several files in node.js但我认为它违反了node.js 实践(for 循环内的异步函数)。有没有其他更好的解决方案?
最佳答案
如果您想异步运行任意任务列表(取消链接文件),但知道它们何时全部完成,您可以使用 async.js模块。它可以串行运行任务和 parallel .
因此,将所有取消链接函数调用放入一个数组中,然后调用 async.parallel()
并让它们飞起来。然后,当它们全部完成后,您将进入单个可管理回调。
var files = ['file1.txt', 'file2.txt'];
var myParallelTasks = [];
files.forEach( function( fileName )
{
myParallelTasks.push( fs.unlink( fileName, function(callback)
{
callback();
})
);
}
async.parallel( myParallelTasks, function()
{
// all done
console.log( "all done" );
});
关于javascript - 如何异步删除多个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30417595/