gpt4 book ai didi

javascript - 如何在 gulp 的循环中调用 rimraf

转载 作者:行者123 更新时间:2023-11-30 09:44:17 30 4
gpt4 key购买 nike

我有一个 gulp 文件,我正在尝试循环“rimraf”多个目录:

gulp.task('clean:dest', function(cb) {
for(var i = 0; i < config.dest_dirs.length; i++){
console.log('cleaning: ' + config.dest_dirs[i]);
rimraf(config.dest_dirs[i] + '/*', cb);
}
console.log('Clean dest dir task completed');
});

第一次调用后,接下来的调用会产生错误:

Error: task completion callback called too many times

我可以设置它以便我可以进行异步调用,但在返回之前等待所有进程完成吗?

谢谢。

最佳答案

async.parallel()并行执行多个异步函数并仅在所有异步函数完成时调用 cb 回调:

var async = require('async');

gulp.task('clean:dest', function(cb) {
async.parallel(config.dest_dirs.map(function(dir) {
return function(done) {
console.log('cleaning: ' + dir);
rimraf(dir + '/*', done);
}
}), cb);
});

另请注意,通过执行 rimraf(config.dest_dirs[i] + '/*') 就像您在示例中所做的那样,您只是删除了每个目录的内容,而不是目录本身。

关于javascript - 如何在 gulp 的循环中调用 rimraf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39579578/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com