任务如下。我需要使用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 可以更简单吗?