javascript - 如何异步删除多个文件?

标签 javascript node.js asynchronous fs

假设我有一个包含多个文件路径的数组。我想异步删除这些文件。

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/

相关文章:

node.js - 当其中一个请求花费太多时间时,如何同时响应不同的请求

javascript - 谷歌地图 - 缩放时保持居中

ruby-on-rails - 与技术无关的 JSON API 集成测试框架

javascript - Mongoose 按日期范围和时刻进行查询

node.js - Node JS : Is is possible to show the stack trace of a calling async function?

node.js - 如何使用 Node、Async 和 Mongoose 计算作用域变量的总和?

swift - 如何在嵌套的 Firebase 异步 observeSingleEvent() 方法 Swift 中使用 DispatchGroup?

javascript - 单击 map 外部时传单缩放 map

javascript - 我无法使用 Enter 发送

javascript - 在数组时间和现在时间范围内过滤数组javascript