Ho il seguente codice, fileStatsPromises
è di Promise<Stats>[]
, sia foo
e bar
sono Promise<Stats>[]
. Qual è il modo corretto per attenderli? Voglio ottenere <Stats>[]
.Come posso attendere un elenco di Promises 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);
MODIFICA: un esempio minimo.
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);
})();
Il codice è piuttosto incompleta. Potresti fornire un esempio che può essere effettivamente eseguito (inclusa una definizione di 'stat')? A parte questo, se 'fileStatsPromises' è un array di Promises, dovresti stare bene con la tua seconda opzione (' bar'). – nils
Sembra un errore causato dal dattiloscritto, perché la console emette effettivamente 10 "ciao" quando registro "bar". – Zen