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.desiredSizeint- ストリームの内部キューを埋めるのに必要なサイズを、整数で返します。常に 1、0(ストリームが閉じている場合)、または
null(ストリームにエラーがある場合)です。
- ストリームの内部キューを埋めるのに必要なサイズを、整数で返します。常に 1、0(ストリームが閉じている場合)、または
-
writer.closedPromise<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 を返し、エラー時は拒否されます。
- writer を閉じようとします。残りの書き込みは、writer が閉じる前に処理されます。このメソッドは、writer が正常に閉じて残りの書き込みを処理した場合は
-
releaseLock(): void- ストリームに対する writer のロックを解放します。解放後、writer はアクティブではなくなります。保留中の
write(chunk)がすべて解決される前に、このメソッドを呼べます。これにより、write操作をキューに入れ、ロックを解放し、別のソースから書き込みストリームへパイプを始められます。次の例を参照してください。
- ストリームに対する writer のロックを解放します。解放後、writer はアクティブではなくなります。保留中の
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より少ない場合があります。想定外の型に遭遇すると例外を投げます。