我有一个数组,我希望将其转换为可读流。为此,我正在使用
stream-array
NPM 模块。
当我尝试使用 Node.js 10 异步迭代器迭代流时
const streamify = require('stream-array');
const readable = streamify(list);
for await (let chunk of readable) {
...
}
我收到以下错误:
TypeError: readable is not async iterable
但是,对于常规的
fs
流来说,它工作得很好。
stream-array
使用旧版本的readable-stream
库,该库似乎已经过时,并且不包含可迭代符号。
尝试在
超燃冲压发动机中使用
scramjet.fromArray
。它应该完全满足您的需求。
发生错误“TypeError:可读不是异步可迭代”,因为
streamify()
函数从 stream-array module
返回的可读对象不是异步可迭代。 for await...of loop
需要异步迭代,但 readable
对象是常规 Node.js 可读流。
要使用 Node.js 10 异步迭代器迭代流,您需要将
readable
流包装在异步迭代器中。您可以使用 asyncIterator()
模块中的 stream-to-async-iterator
函数来完成此操作。
const streamify = require('stream-array');
const { asyncIterator } = require('stream-to-async-iterator');
const list = [1, 2, 3, 4, 5];
const readable = streamify(list);
// Wrap the readable stream in an async iterable
const asyncReadable = asyncIterator(readable);
for await (let chunk of asyncReadable) {
console.log(chunk);
}