javascript - 如何将异步迭代器转换为数组?

标签 javascript async-await

鉴于我有一个异步生成器:

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);
}

(我知道这在生产应用程序中可能是不好的做法,但它对于原型(prototype)设计很方便。)

最佳答案

这是一个将异步迭代器转换为数组的简单函数,而无需包含整个包。

async function toArray(asyncIterator){ 
    const arr=[]; 
    for await(const i of asyncIterator) arr.push(i); 
    return arr;
}

关于javascript - 如何将异步迭代器转换为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58668361/

相关文章:

javascript - 检测在 vh JQuery 中滚动的距离

javascript - 根据数值对嵌套数组进行排名

javascript - Html 表单无法使用 JavaScript 验证输入

javascript - JQuery onClick 自动生成的表不起作用

c# - 如何在 F# 中编写此异步 IO C# 代码?

javascript - 在 Jest : "TypeError: admin.firestore is not a function" 中模拟 Firebase 管理员时出错

javascript - 在不转换异步函数的情况下编译 typescript

javascript - JavaScript 中的异步等待

Azure Function : When Function AutoScale, 函数被多次调用

c# - 在 ForEach 内部等待异步的正确方法是什么?