跳转到内容
搜索文档

TransformStream

最后更新 查看 MarkdownAgent 设置

背景

transform stream 由一对流组成:可写流(称为其 writable side)和可读流(称为其 readable side)。写入 writable side 的数据会作为新数据供 readable side 读取。

Workers 目前仅实现 identity transform stream,这是一种 transform stream,会将写入其 writable side 的所有 chunk 原样转发到其 readable side,不做任何更改。


构造函数

let { readable, writable } = new TransformStream();
  • TransformStream() TransformStream

    • 返回新的 identity transform stream。

属性

  • readable ReadableStream
    • ReadableStream 实例。
  • writable WritableStream
    • WritableStream 实例。

IdentityTransformStream

Workers 平台上 TransformStream 的当前实现尚未完全符合 Streams Standard,我们很快将对实现进行更改以使其符合规范。为此,我们引入了 IdentityTransformStream 类,其行为与当前 TransformStream 类相同。此类 stream 会将写入其 writable side 的所有字节数据 chunk(以 TypedArray 形式)原样转发到其 readable side,不做任何更改。

IdentityTransformStream 的 readable side 支持 bring your own buffer (BYOB) reads

构造函数

let { readable, writable } = new IdentityTransformStream();
  • IdentityTransformStream() IdentityTransformStream

    • 返回新的 identity transform stream。

属性

  • readable ReadableStream
    • ReadableStream 实例。
  • writable WritableStream
    • WritableStream 实例。

FixedLengthStream

FixedLengthStreamIdentityTransformStream 的特化版本,限制 stream 可 passthrough 的总字节数。它主要很有用,因为使用 FixedLengthStream 生成 ResponseRequest 时,stream 的固定长度会用作 Content-Length 标头值,而不是像使用其他类型的 stream 那样使用 chunked encoding。如果写入 stream 的字节数过多或过少,将发生错误。

构造函数

let { readable, writable } = new FixedLengthStream(1000);
  • FixedLengthStream(length) FixedLengthStream

    • 返回新的 identity transform stream。
    • length 可以是 numberbigint,最大值为 2^53 - 1

属性

  • readable ReadableStream
    • ReadableStream 实例。
  • writable WritableStream
    • WritableStream 实例。

相关资源

这篇文档对您有帮助吗?