タスクは次のとおりです。フォルダーを削除する必要があり、そのコンテンツはfs2ライブラリの rmdir を使用しています。延期された promise オブジェクトを返します。完了したら、フォルダーを再度作成する必要があります。また、関数はさらに連鎖するために promise も返す必要があります。
私が今持っているコードは次のようなものです:
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なしでもっと簡単にできますか?