Как мне ждать список обещаний в JavaScript/TypeScript?

У меня есть следующий код, fileStatsPromises - это Promise<Stats>[], обе foo и bar - Promise<Stats>[]. Каков правильный способ их дождаться? Я хочу получить <Stats>[].

    const files = await readDir(currentDir);
    const fileStatsPromises = files.map(filename => path.join(currentDir, filename)).map(stat);

    const foo = await fileStatsPromises;
    const bar = await Promise.all(fileStatsPromises);

EDIT: минимальный пример.

function makePromise() {
    return Promise.resolve("hello");
}
const promiseArray = [];
// const promiseArray = [] as Promise<string>[];
for (let i = 0; i < 10; i++) {
    promiseArray.push(makePromise());
}

(async () => {
    const foo = await promiseArray;
    const bar = await Promise.all(promiseArray);
})();

Screenshot

Ответ 1

Это верно:

const bar = await Promise.all(promiseArray);

await Promise.all([...]) принимает массив Promises и возвращает массив результатов.

bar будет массивом: ['hello',..., 'hello']

Вы также можете деконструировать результирующий массив:

const [bar1, ..., bar10] = await Promise.all(promiseArray);
console.log(bar1); // hello
console.log(bar7); // hello

Ответ 2

Я не уверен, что вы имеете в виду, но, может быть, bar.then(function(){ alert('complete') })