串流自动交换器
安装
$ yarn add @cookielab.io/stream-async-wrappers
使用量
从流中读取数据
import {ReadableStreamAsyncReader} from '@cookielab.io/stream-async-wrappers';
const reader = new ReadableStreamAsyncReader(stream); // wrap readable stream
const chunk = await reader.read(); // read chunk of data
将数据写入流中
import {WritableStreamAsyncReader} from '@cookielab.io/stream-async-wrappers';
const writer = new WritableStreamAsyncWriter(stream);
await writer.write(chunk); // write chunk of data
await writer.end(); // ends wrapped write stream
API 密码
new WritableStreamAsyncWriter(stream: Writable)
通过包接节点来创建编剧实例 Writable 流线.
writableStreamAsyncWriter.write(chunk: string | Buffer | any, encoding?: string, callback?: (error?: Error | null) => void): Promise<void>
将给定的数据块写入被包裹的流中 . 返回的承诺将在数据成功写入包裹的写流后解决. 当写入失败时, 返回的诺言会以错误拒绝 . 可选的回调参数在返回的许诺解决或拒绝之前被调用.
writableStreamAsyncWriter.end(callback?: (error?: Error | null) => void): Promise<void>
在所有数据成功写入流后结束所包裹的写入流. 返回的诺言将在溪流成功完成后解决. 当写出或结束失败时, 返回的许诺会以错误拒绝 .
new ReadableStreamAsyncReader(stream: Readable)
通过包裹节点创建阅读器实例 Readable 流线.
readableStreamAsyncReader.read(size?: number): Promise<Chunk | null | undefined>
从被包裹的溪流读取块数据 . 可选的大小参数可以用来指定要读取多少数据. 返回的承诺一旦得到读取的数据就会得到解决. 当读取失败时, 返回的承诺会以错误拒绝 .