gpt4 book ai didi

javascript - Promise 返回挂起的值,而不是使用 async/await 的函数内的值

转载 作者:行者123 更新时间:2023-12-01 01:48:02 25 4
gpt4 key购买 nike

我有一个代码可以从目录中读取文件的路径并返回它们。我使用 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 仅等待异步函数内的 Promise 解析。

getVersions 是一个 async 函数,因此它返回一个 Promise(当它解析时,会使用值 final 解析)。

const versionsList = getVersions().then(res => res);

您没有在这里await(也不能,因为您不在异步函数中),因此您获得了then()的返回值code> method ...这是 promise 。

关于javascript - Promise 返回挂起的值,而不是使用 async/await 的函数内的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51812342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com