鉴于一系列承诺,在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 }
结果是正确的,但我仍然在做a forEach
和a then
将已解决的承诺转化为结果.这对我来说似乎不对.有更干净的方式吗?
正如您提交的问题中所提到的,核心问题是await*
不再是一件事并已被删除.不幸的是,它没有在Babel 6中正确地抛出语法错误,并且基本上被视为正常await
.
你需要明确地
let [p1, p2] = await Promise.all([ System.import('./package1.js'), System.import('./package2.js')]);