我有一个代码可以从目录中读取文件的路径,并返回它们。 我使用 async/await 来调用函数来执行此操作,但我得到的 Promise 挂起而不是目标值。
function readdirAsync(path) {
return new Promise((resolve, reject) => {
fs.readdir(path, (err, result) => {
if (err) {
reject(err);
} else {
resolve(result);
}
});
}).then(res => {
const versions = res.map(filename => match(/^[d]+(.+d+)+/g, filename)[0]);
return versions;
});
}
async function getVersions() {
const final = await readdirAsync(require('path').join('src/versions/'));
return final;
}
const versionsList = getVersions().then(res => res);
console.log(versionsList);
await
只等待异步函数内部解析的承诺。
getVersions
是一个async
函数,因此它返回一个承诺(当它解析时,使用值final
解析(。
const versionsList = getVersions().then(res => res);
您没有在这里await
(也不能,因为您不在异步函数中(,因此您获得了then()
方法的返回值......这是承诺。