Функция асинхронной карты, которая ждет, возвращает Promise вместо значения

У меня есть этот код

async function addFiles(dir,tree) {
  return (await readDir(dir))
    .map(async (name) => {await readDir(dir); return name;})
}

но, к сожалению, он просто возвращает кучу promises, потому что там не ожидается асинхронная функция на карте. Мне интересно, есть ли способ дождаться отображаемой функции в приведенном выше коде.

Ответ 1

попробовать

async function addFiles(dir,tree) {
  const files = await readDir(dir)
  await Promise.all(files.map(async (name) => {await readDir(dir); return name;})
}

Ответ 2

Если вы используете синюю птицу, вы можете использовать этот более чистый, более короткий синтаксис с Promise.map

async function addFiles(dir, tree) {
  const files = await readDir(dir);
  return Promise.map(files, async (name) => { await readDir(dir); return name; });
}