Javascript 中的异步迭代器

Async iterator in Javascript

我正在寻找在 Javascript 中制作异步迭代器的最佳方法。我已经在使用生成器和 async/await 函数,但是如果不使用最新的 Node.js 版本(10.x,我找不到实现所谓的 for-await-of 循​​环的方法).

问题如下:

我正在从 API 中获取大量数据,我需要滚动其中的内容。我不想将所有内容存储在一个数组中,因为它会在 RAM 中爆炸。

我知道如何使用流来做到这一点,但(在我看来)使用生成器会更酷。

感谢您的帮助,

此致,

-- 科伦廷

异步迭代器在 v10 以下的 node.js 中不可用,但是有一些非常好的方法可以在没有迭代器的情况下异步使用流,例如 scramjet:

const stream = DataStream.from(someNodeObjectStream);
await (async () => {
    while (let data = await stream.whenRead()) {
        doSomethingWith(data);
    }
})();

这或多或少是您从异步迭代器中获得的语​​法糖。