【发布时间】:2021-08-12 14:52:46
【问题描述】:
在 VSCode 扩展中,我有一个函数可以从当前工作区中删除某些目录。但该函数不会等待目录被删除。
The accepted answer for this Stackoverflow question 是有道理的,但我仍然无法弄清楚如何使我的功能正常工作。我在哪里等待并返回?
async function cleanUpWorkspace(workspace: any) {
const fs = require('fs');
const rimraf = require("rimraf");
var targetFolders = ['dirA', 'dirB', 'dirC', 'dirD'];
try {
await targetFolders.forEach(function (value) { //'await' has no effect on the type of this expression.
let targetPath = workspace + "\\\\" + value;
if (fs.existsSync(targetPath)) {
fs.promises.access(targetPath);
rimraf(targetPath, function (err: any) {
if (err) {
console.log(err);
} else {
console.log("Directory: " + value + " was deleted");
}
});
} else {
console.log(value + " doesn't exist.");
}
});
return Promise.resolve();
} catch (error) {
console.log(error);
}
}
async function prepare() {
await cleanUpWorkspace(workspace);
}
- 打字稿 4.3.5
- node.js 14.17.0
【问题讨论】:
-
forEach不返回承诺,所以await它没用。
标签: node.js typescript vscode-extensions