Tag: 延期的

正确的方式与JS使用承诺链

任务如下。 我需要使用fs2库中的rmdir来删除文件夹和内容。 它返回承诺对象。 完成后我需要再次创build文件夹。 而且函数还应该返回承诺,以便进一步链接。 我现在的代码是这样的: 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,它可以做得更简单吗?