📜  Node.js Stream 可读[Symbol.asyncIterator]() 方法

📅  最后修改于: 2022-05-13 01:56:50.532000             🧑  作者: Mango

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。