Baseline Widely available
WritableStreamDefaultWriter
ã¯ã¹ããªã¼ã API ã®ã¤ã³ã¿ã¼ãã§ã¤ã¹ã§ã WritableStream.getWriter()
ã«ãã£ã¦è¿ããããªãã¸ã§ã¯ãã§ããã使ãããã¨ã©ã¤ã¿ã¼ã WritableStream
ã«ããã¯ããä»ã®ã¹ããªã¼ã ãåºã«ãªãã·ã³ã¯ã«æ¸ãè¾¼ããªãããã«ãã¾ãã
WritableStreamDefaultWriter()
æ°ãã WritableStreamDefaultWriter
ãªãã¸ã§ã¯ãã®ã¤ã³ã¹ã¿ã³ã¹ã使ãã¾ãã
WritableStreamDefaultWriter.closed
èªåå°ç¨
ã¹ããªã¼ãã³ã°ããã»ã¹ã®çµäºã«å¿çããã³ã¼ããè¨è¿°ã§ãã¾ããã¹ããªã¼ã ãéããããããã©ã¤ã¿ã¼ã®ããã¯ãè§£é¤ãããã¨å±¥è¡ãããã¹ããªã¼ã ãã¨ã©ã¼ã«ãªãããã©ã¤ã¿ã¼ã®ããã¯ãè§£æ¾ãããã¨æå¦ããããããã¹ãè¿ãã¾ãã
WritableStreamDefaultWriter.desiredSize
èªåå°ç¨
ã¹ããªã¼ã ã®å é¨ãã¥ã¼ãæºããããã«å¿ è¦ãªå¸æãµã¤ãºãè¿ãã¾ãã
WritableStreamDefaultWriter.ready
èªåå°ç¨
ã¹ããªã¼ã ã®å
é¨ãã¥ã¼ã®å¸æãµã¤ãºã鿣ããæ£ã«ç§»è¡ããã¨ãã«è§£æ±ºãã Promise
ãè¿ããããã¯ãã¬ãã·ã£ã¼ãé©ç¨ãããªããªã£ããã¨ãéç¥ãã¾ãã
WritableStreamDefaultWriter.abort()
ã¹ããªã¼ã ã䏿¢ãããããã¥ã¼ãµã¼ãã¹ããªã¼ã ã«æ£å¸¸ã«æ¸ãè¾¼ããã¨ãã§ããªããªãããã¥ã¼ã«å ¥ããããæ¸ãè¾¼ã¿ãç ´æ£ãã¦ããã«ã¨ã©ã¼ç¶æ ã«ç§»è¡ãããã¨ãéç¥ãã¾ãã
WritableStreamDefaultWriter.close()
é¢é£ããæ¸ãè¾¼ã¿å¯è½ãªã¹ããªã¼ã ãéãã¾ãã
WritableStreamDefaultWriter.releaseLock()
対å¿ããã¹ããªã¼ã ã®ã©ã¤ã¿ã¼ã®ããã¯ãè§£é¤ãã¾ãã ããã¯ãè§£é¤ããã¨ãã©ã¤ã¿ã¼ã¯ã¢ã¯ãã£ãã§ã¯ãªããªãã¾ãã ããã¯ãè§£é¤ããã¨ãã«é¢é£ããã¹ããªã¼ã ã«ã¨ã©ã¼ãçºçããå ´åãã©ã¤ã¿ã¼ã¯ãã以éåãããã«ã¨ã©ã¼ãçºçããããã«è¦ãã¾ãã ããã§ãªãå ´åãã©ã¤ã¿ã¼ã¯éããããããã«è¦ãã¾ãã
WritableStreamDefaultWriter.write()
渡ããããã¼ã¿ã®ãã£ã³ã¯ã WritableStream
ã¨ãã®åºã«ãªãã·ã³ã¯ã«æ¸ãè¾¼ãã§ãããæ¸ãè¾¼ã¿æä½ã®æåã¾ãã¯å¤±æã示ãããã«è§£æ±ºãã Promise
ãè¿ãã¾ãã
次ã®ä¾ã¯ãã«ã¹ã¿ã ã®ã·ã³ã¯ã¨ API æä¾ã®ãã¥ã¼ã¤ã³ã°æ¦ç¥ã使ç¨ãã WritableStream
ã®ä½æã示ãã¦ãã¾ãã æ¬¡ã«ãsendMessage()
ã¨ãã颿°ãå¼ã³åºããæ°ãã使ãããã¹ããªã¼ã ã¨æååãæ¸¡ãã¾ãã ãã®é¢æ°å
ã§ãWritableStreamDefaultWriter
ã®ã¤ã³ã¹ã¿ã³ã¹ãè¿ãã¹ããªã¼ã ã® getWriter()
ã¡ã½ãããå¼ã³åºãã¾ãã forEach()
å¼ã³åºãã使ç¨ãã¦ãæååã®åãã£ã³ã¯ãã¹ããªã¼ã ã«æ¸ãè¾¼ã¿ã¾ãã æå¾ã«ãwrite()
ããã³ close()
ã¯ããã£ã³ã¯ã¨ã¹ããªã¼ã ã®æåã¾ãã¯å¤±æã«å¯¾å¦ããããã® promise ãè¿ãã¾ãã
const list = document.querySelector("ul");
async function sendMessage(message, writableStream) {
// defaultWriter 㯠WritableStreamDefaultWriter åã§ã
const defaultWriter = writableStream.getWriter();
const encoder = new TextEncoder();
const encoded = encoder.encode(message);
try {
for (const chunk of encoded) {
await defaultWriter.ready;
await defaultWriter.write(chunk);
console.log("Chunk written to sink.");
}
// ã©ã¤ã¿ã¼ãéããåã«ãã¹ã¦ã®ãã£ã³ã¯ã確å®ã«
// æ¸ãè¾¼ã¾ããããã«ãready ãå度å¼ã³åºãã¾ãã
await defaultWriter.ready;
await defaultWriter.close();
console.log("All chunks written");
} catch (err) {
console.log("Error:", err);
}
}
const decoder = new TextDecoder("utf-8");
const queuingStrategy = new CountQueuingStrategy({ highWaterMark: 1 });
let result = "";
const writableStream = new WritableStream(
{
// ã·ã³ã¯ã®å®è£
write(chunk) {
return new Promise((resolve, reject) => {
const buffer = new ArrayBuffer(1);
const view = new Uint8Array(buffer);
view[0] = chunk;
const decoded = decoder.decode(view, { stream: true });
const listItem = document.createElement("li");
listItem.textContent = `Chunk decoded: ${decoded}`;
list.appendChild(listItem);
result += decoded;
resolve();
});
},
close() {
const listItem = document.createElement("li");
listItem.textContent = `[MESSAGE RECEIVED] ${result}`;
list.appendChild(listItem);
},
abort(err) {
console.log("Sink error:", err);
},
},
queuingStrategy,
);
sendMessage("Hello, world.", writableStream);
å®å ¨ãªã³ã¼ãã¯ãåç´ãªã©ã¤ã¿ã¼ã®ä¾ã«ããã¾ãã
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4