stream.setBody(body)


为流设置出站主体源。只能调用一次。 与 stream.writer 互斥。

🌐 Sets the outbound body source for the stream. Can only be called once. Mutually exclusive with stream.writer.

支持以下主体源类型:

🌐 The following body source types are supported:

  • null — 可写的一侧立即关闭(发送 FIN 且没有数据)。
  • string — 使用 UTF-8 编码并作为一个单独的数据块发送。
  • ArrayBufferSharedArrayBufferArrayBufferView —— 作为单个块发送。字节被复制到内部缓冲区,因此调用者的源缓冲区保持不变,并且可以在调用返回后立即重用或修改。希望确保在传递后源不被修改的调用者可以在传递缓冲区之前自行调用 ArrayBuffer.prototype.transfer()
  • Blob — 从Blob的底层数据队列发送。
  • <FileHandle> — 文件内容通过基于文件描述符的异步数据源读取。FileHandle 必须以读取方式打开(例如,通过 fs.promises.open(path, 'r'))。一旦作为主体传入,FileHandle 将被锁定,不能作为另一个流的主体使用。流结束时 FileHandle 会自动关闭。
  • AsyncIterableIterable —— 每个生成的块(字符串或 Uint8Array)都会以流式模式逐步写入。
  • Promise — 等待中;解析后的值将作为主体使用(遵循相同的类型规则)。

如果出站已经配置或写入器已被访问,则抛出 ERR_INVALID_STATE

🌐 Throws ERR_INVALID_STATE if the outbound is already configured or if the writer has been accessed.