Angesichts einer Reihe von Versprechungen, was ist der idiomatische Weg, um die Ergebnisse in ES7 zu erhalten?ES7 Erhalten eines Ergebnisses aus einer Reihe von Versprechungen mit Hilfe des Erwartungsgenerators
Hier ist, was ich tun möchte:
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
}
Das Ergebnis ist richtig, aber ich mache noch einen forEach
und then
die aufgelösten Versprechen in Ergebnisse zu verwandeln. Das scheint mir nicht richtig zu sein. Gibt es einen saubereren Weg?
Hat bereits die aufgelösten Werte nicht 'promises' suchen enthalten? Zumindest ist das "let result = erwarten" [Promise.resolve (1), Promise.resolve (2)]; tut es für mich? – m90
Ja, jeder Eintrag in 'verspricht' enthält einen' [[PromiseValue]] '', aber ich weiß nicht wie ich auf sie zugreifen kann ohne die 'forEach' und' then' –
Das ist interessant. Ich habe gerade versucht, das obige von babel transpiliert und es gab mir die richtigen Werte. Was verwendest du zum transpilieren? – m90