【发布时间】:2019-11-02 04:57:15
【问题描述】:
鉴于我有一个异步生成器:
async function* generateItems() {
// ...
}
将所有结果迭代到数组中的最简单方法是什么?我尝试了以下方法:
// This does not work
const allItems = Array.from(generateItems());
// This works but is verbose
const allItems = [];
for await (const item of generateItems()) {
allItems.push(item);
}
(我知道这在生产应用程序中可能是不好的做法,但它对于原型设计很方便。)
【问题讨论】:
-
这行得通,但很冗长 不要认为你能得到比这更好的,因为每个项目都需要单独
awaited 才能访问下一个承诺 -
allItems = await generateItems().toArray()是currently proposed -
有一个新的
Array.asyncFrom提案提到了这篇文章。