Javascript Promise return pending不是使用async/await的函数中的值

Javascript Promise return pending不是使用async/await的函数中的值,javascript,vue.js,Javascript,Vue.js,我有一个从目录中读取文件路径并返回它们的代码。 我使用async/await来调用函数来实现这一点,但我得到的不是目标值 function readdirAsync(path) { return new Promise((resolve, reject) => { fs.readdir(path, (err, result) => { if (err) { reject(err); } else { resolve(

我有一个从目录中读取文件路径并返回它们的代码。 我使用async/await来调用函数来实现这一点,但我得到的不是目标值

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); 

wait
只等待在异步函数中解析承诺

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


您没有在这里等待(也不能,因为您不在异步函数中),因此您得到
then()
方法的返回值…这就是承诺。

wait
只等待在异步函数中解析承诺

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


您没有在这里等待(也不能,因为您不在异步函数中),因此您得到了
then()
方法的返回值…这就是承诺。

getVersions()。然后(res=>console.log(res));试试这个。它可以正常工作,但我需要将
versionList
设置为
res
@ZeyadEtman我已经回滚了您上次的编辑,因为您不应该更改现有的问题,这样会使已经给出的答案无效。如果你认为你的问题不是重复的,你可以编辑你的问题来解释你的问题的不同之处。如果您有基于此问题和给出的答案的其他后续问题,您可以提出新问题并将此问题链接到其中。通过在stackoverflow上搜索,或者在询问one.getVersions()时检查相关问题,您可以找到这些问题的部分或全部答案。然后(res=>console.log(res));试试这个。它可以正常工作,但我需要将
versionList
设置为
res
@ZeyadEtman我已经回滚了您上次的编辑,因为您不应该更改现有的问题,这样会使已经给出的答案无效。如果你认为你的问题不是重复的,你可以编辑你的问题来解释你的问题的不同之处。如果您有基于此问题和给出的答案的其他后续问题,您可以提出新问题并将此问题链接到其中。您可以通过在stackoverflow上搜索或在提问时检查相关问题来找到这些问题的部分或全部答案。好的,但是如果我需要将
versionsList
设置为
res
值,我该怎么办?@ZeyadEtman-“因为您不在异步函数中”请,编辑后您可以检查代码吗?@ZeyadEtman-
const final=readdirAsync
仍然不是
wait
ing,并且仍然不在
async
函数中(因此它仍然不能
wait
)。对不起,您可以进一步帮助我吗?好的,但是如果我需要将
versionlist
设置为
res
值,我该怎么办?@ZeyadEtman-“因为您不在异步函数中”请在编辑后检查代码好吗?@ZeyadEtman-
const final=readdirAsync
仍然没有等待,并且仍然不在
async
函数中(因此它仍然不能
wait
)。对不起,您能进一步帮助我吗?
const versionsList = getVersions().then(res => res);