promise 返回挂起,而不是使用 async/await 的函数中的值



我有一个代码可以从目录中读取文件的路径,并返回它们。 我使用 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()方法的返回值......这是承诺。

最新更新