Учитывая массив обещаний, какой идиоматический способ получить результаты в ES7?
Вот что я хочу сделать:
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
}
Результат правильный, но я все еще делаю forEach
и then
, чтобы превратить разрешенные промисы в результаты. Это просто не кажется мне правильным. Есть ли более чистый способ?
promises
уже не содержит разрешенных значений? По крайней мере, это то, чтоlet result = await* [Promise.resolve(1), Promise.resolve(2)];
делает для меня? - person m90   schedule 20.12.2015promises
содержит[[PromiseValue]]
, но я не знаю, как получить к ним доступ безforEach
иthen
- person Matt K   schedule 20.12.2015promises
возвращает результаты, а не обещания? - person Matt K   schedule 20.12.2015async/await
в том, чтобы больше не использовать промисы вручную. Он скрыт за асинхронными функциями и ожидает асинхронных функций. - person Shanoor   schedule 20.12.2015[1,2]
, ноconsole.log
все еще возвращает обещание. - person Matt K   schedule 20.12.2015[1, 2]
- person Shanoor   schedule 20.12.2015