Node.js Stream 可读[Symbol.asyncIterator]() 方法
Readable Stream 中的 readable [Symbol.asyncIterator]() 方法用于完全消费流。
句法:
readable[Symbol.asyncIterator]()
参数:此方法不接受任何参数。
返回值:它返回asyncIterator以完全消费流。
下面的例子说明了 Node.js 中readable[Symbol.asyncIterator]()方法的使用:
示例 1:
// Node.js program to demonstrate the
// readable[Symbol.asyncIterator]()
// method
// Include fs module
const fs = require('fs');
// Using async function
async function print(readable) {
// Setting the encoding
readable.setEncoding('utf8');
let data = '';
for await (const chunk of readable) {
data += chunk;
}
console.log(data);
}
print(fs.createReadStream('input.text')).catch(console.error);
输出:
Promise { }
GeeksforGeeks
示例 2:
// Node.js program to demonstrate the
// readable[Symbol.asyncIterator]()
// method
// Constructing readable from stream
const { Readable } = require('stream');
// Using async function
async function * generate() {
yield 'GfG';
yield 'CS-Portal';
}
// Creating readable streams from iterables
const readable = Readable.from(generate());
readable.on('data', (chunk) => {
console.log(chunk);
});
console.log("program ends!!!");
输出:
program ends!!!
GfG
CS-Portal
参考: https://nodejs.org/api/stream.html#stream_readable_symbol_asynciterator。