Ich habe folgenden Code, fileStatsPromises
ist von Promise<Stats>[]
, beide foo
und bar
sind Promise<Stats>[]
. Was ist der richtige Weg, um sie zu erwarten? Ich möchte <Stats>[]
bekommen.Wie warte ich auf eine Liste von Versprechen in JavaScript/TypeScript?
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: ein minimales Beispiel.
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);
})();
Ihr Code ist ziemlich unvollständig. Können Sie ein Beispiel angeben, das tatsächlich ausgeführt werden kann (einschließlich einer Definition von "stat")? Abgesehen davon, wenn 'fileStatsPromises' ein Array von Promises ist, sollte Ihre zweite Option (' bar') in Ordnung sein. – nils
Dies scheint ein Fehler zu sein, der durch Typoskript verursacht wird, da die Konsole tatsächlich 10 'Hallo' ausgibt, wenn ich 'Balken' logge. – Zen