title | short-title | slug | l10n | ||
---|---|---|---|---|---|
WritableStreamDefaultWriter: ready プロパティ |
ready |
Web/API/WritableStreamDefaultWriter/ready |
|
{{APIRef("Streams")}}
ready
は {{domxref("WritableStreamDefaultWriter")}} インターフェイスの読み取り専用プロパティで、ストリームの内部キューの目的のサイズが非正から正に移行したときに解決する {{jsxref("Promise")}} を返し、背圧が適用されなくなったことを通知します。
{{jsxref("Promise")}} です。
次の例は、ready
プロパティの 2 つの使用法を示しています。 最初は ready
を使用して、WritableStream
が書き込みを完了し、バイナリチャンクを送信する前にデータを受信できるようにします。 2 番目も、WritableStream
の書き込みが完了しているかどうかをチェックしますが、今度はライターを閉じる前に書き込みを終了する必要があるためです。
function sendMessage(message, writableStream) {
// defaultWriter は WritableStreamDefaultWriter 型です
const defaultWriter = writableStream.getWriter();
const encoder = new TextEncoder();
const encoded = encoder.encode(message, { stream: true });
encoded.forEach((chunk) => {
// ストリームとそのライターがデータを
// 受信できることを確認します。
defaultWriter.ready
.then(() => defaultWriter.write(chunk))
.then(() => {
console.log("Chunk written to sink.");
})
.catch((err) => {
console.error(`Chunk error: ${err}`);
});
// ライターを閉じる前にすべてのチャンクが
// 確実に書き込まれるように、ready を再度呼び出します。
defaultWriter.ready
.then(() => defaultWriter.close())
.then(() => {
console.log("All chunks written");
})
.catch((err) => {
console.error(`Stream error: ${err}`);
});
});
}
{{Specifications}}
{{Compat}}