任务如下。我需要使用fs2库中的 rmdir 删除文件夹及其内容。它返回延迟的承诺对象。完成后,我需要再次创建文件夹。并且函数也应该返回承诺以进行进一步的链接。
我现在的代码是这样的:
function clearOutputDir() {
var def = deferred();
var def2 = deferred();
if (fs.existsSync(outputFolder)) {
def.resolve(fs2.rmdir(outputFolder, {recursive: true, force: true}));
} else {
def.resolve();
}
def2.resolve(def.promise.then(function () {
return deferred.promisify(fs.mkdir)(outputFolder);
}));
return def2.promise;
}
看起来它有效,但它很难看。如果没有 def 和 def2 可以更简单吗?