ReadableStream.from(iterable)
新增于: v20.6.0
-
iterable<Iterable> 实现Symbol.asyncIterator或Symbol.iterator可迭代协议的对象。\
iterable<Iterable> Object implementing theSymbol.asyncIteratororSymbol.iteratoriterable 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()); })();