Data una serie di promesse, qual è il modo idiomatico per ottenere i risultati in ES7?ES7 Ottenere risultati da una serie di promesse utilizzando il generatore di attesa
Ecco cosa voglio fare:
async function getImports() {
let imports = [System.import('./package1.js'), System.import('./package2.js')];
let promises = await* imports;
let results = [];
await promises.forEach(val => val.then(data => results.push(data))); //seems hacky
console.log(results); // array of 2 resolved imports
}
Il risultato è corretto, ma sto ancora facendo un forEach
e un then
per trasformare le promesse in risultati risolte. Questo non mi sembra giusto. C'è un modo più pulito?
Non 'promises' già contengono i valori risolti? Almeno questo è ciò che 'let result = await * [Promise.resolve (1), Promise.resolve (2)];' fa per me? – m90
Sì, ogni voce in 'promises' contiene un' [[PromiseValue]] ', ma non so come accedervi senza' forEach' e 'then' –
Questo è interessante. Ho appena provato che quanto sopra è stato trasposto da babel e mi ha dato i valori corretti. Cosa usi per il transpiling? – m90