ReadableStream.from(iterable)


新增于: v20.6.0
  • iterable <Iterable> 实现 Symbol.asyncIteratorSymbol.iterator 可迭代协议的对象。

    \iterable <Iterable> Object implementing the Symbol.asyncIterator or Symbol.iterator iterable protocol.

一种从可迭代对象创建新 <ReadableStream> 的实用方法。

\A utility method that creates a new <ReadableStream> from an iterable.

import { ReadableStream } from 'node:stream/web';
async function* asyncIterableGenerator() {
 yield 'a';
 yield 'b';
 yield 'c';
}
const stream = ReadableStream.from(asyncIterableGenerator());
for await (const chunk of stream)
 console.log(chunk); // Prints: 'a', 'b', 'c'const { ReadableStream } = require('node:stream/web');
async function* asyncIterableGenerator() {
 yield 'a';
 yield 'b';
 yield 'c';
}
(async () => {
 const stream = ReadableStream.from(asyncIterableGenerator());
 for await (const chunk of stream)
 console.log(chunk); // Prints: 'a', 'b', 'c'
})();

要将生成的 <ReadableStream> 管道传输到 <WritableStream>,<Iterable> 应产生一系列 <Buffer><TypedArray><DataView> 对象。

\To pipe the resulting <ReadableStream> into a <WritableStream> the <Iterable> should yield a sequence of <Buffer>, <TypedArray>, or <DataView> objects.

import { ReadableStream } from 'node:stream/web';
import { Buffer } from 'node:buffer';
async function* asyncIterableGenerator() {
 yield Buffer.from('a');
 yield Buffer.from('b');
 yield Buffer.from('c');
}
const stream = ReadableStream.from(asyncIterableGenerator());
await stream.pipeTo(createWritableStreamSomehow());const { ReadableStream } = require('node:stream/web');
const { Buffer } = require('node:buffer');
async function* asyncIterableGenerator() {
 yield Buffer.from('a');
 yield Buffer.from('b');
 yield Buffer.from('c');
}
const stream = ReadableStream.from(asyncIterableGenerator());
(async () => {
 await stream.pipeTo(createWritableStreamSomehow());
})();

AltStyle によって変換されたページ (->オリジナル) /