Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

WritableStream DefaultWriter

最終更新 Markdown で表示Agent セットアップ

背景

writer は、ReadableStream からパイプするのではなく、WritableStream へ直接書き込みたいときに使います。例は次のとおりです。

function writeArrayToStream(array, writableStream) {
  const writer = writableStream.getWriter();
  array.forEach(chunk => writer.write(chunk).catch(() => {}));

  return writer.close();
}

writeArrayToStream([1, 2, 3, 4, 5], writableStream)
  .then(() => console.log('All done!'))
  .catch(e => console.error('Error with the stream: ' + e));

プロパティ

  • writer.desiredSize int

    • ストリームの内部キューを埋めるのに必要なサイズを、整数で返します。常に 1、0(ストリームが閉じている場合)、または null(ストリームにエラーがある場合)です。
  • writer.closed Promise<void>

    • writer が閉じているかを示す Promise です。writer ストリームが閉じると履行され、ストリームにエラーがあると拒否されます。

メソッド

  • abort(reasonstringoptional) : Promise<void>

    • ストリームを中止します。このメソッドは、応答 undefined で履行される Promise を返します。reason は、キャンセル理由を示す任意の人が読める文字列です。reason は、下位 sink の abort アルゴリズムに渡されます。この書き込みストリームが TransformStream の一方である場合、abort アルゴリズムは transform の読み取り側を reason でエラー状態にします。
  • close() : Promise<void>

    • writer を閉じようとします。残りの書き込みは、writer が閉じる前に処理されます。このメソッドは、writer が正常に閉じて残りの書き込みを処理した場合は undefined で履行される Promise を返し、エラー時は拒否されます。
  • releaseLock() : void

    • ストリームに対する writer のロックを解放します。解放後、writer はアクティブではなくなります。保留中の write(chunk) がすべて解決される前に、このメソッドを呼べます。これにより、write 操作をキューに入れ、ロックを解放し、別のソースから書き込みストリームへパイプを始められます。次の例を参照してください。
let writer = writable.getWriter();
// Write a preamble.
writer.write(new TextEncoder().encode('foo bar'));
// While that’s still writing, pipe the rest of the body from somewhere else.
writer.releaseLock();
await someResponse.body.pipeTo(writable);
  • write(chunkany) : Promise<void>

    • データのチャンクを writer に書き込み、操作が成功すると解決する Promise を返します。
    • 下位ストリームが受け付ける型は any より少ない場合があります。想定外の型に遭遇すると例外を投げます。

関連リソース

役に立ちましたか?