Baseline Widely available
getWriter()
㯠WritableStream
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ã¡ã½ããã§ãWritableStreamDefaultWriter
ã®æ°ããã¤ã³ã¹ã¿ã³ã¹ãè¿ãããã®ã¤ã³ã¹ã¿ã³ã¹ã«ã¹ããªã¼ã ãããã¯ãã¾ãã ã¹ããªã¼ã ãããã¯ããã¦ããéããã®ã©ã¤ã¿ã¼ãè§£æ¾ãããã¾ã§ä»ã®ã©ã¤ã¿ã¼ãåå¾ãããã¨ã¯ã§ãã¾ããã
ãªãã
è¿å¤WritableStreamDefaultWriter
ãªãã¸ã§ã¯ãã®ã¤ã³ã¹ã¿ã³ã¹ã
TypeError
ã©ã¤ã¿ã¼ã使ãããã¨ãã¦ããã¹ããªã¼ã ã WritableStream
ã§ã¯ãªãå ´åã
次ã®ä¾ã¯ããã®ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ããã¤ãã®æ©è½ã示ãã¦ãã¾ãã ã«ã¹ã¿ã ã®ã·ã³ã¯ã¨ API æä¾ã®ãã¥ã¼ã¤ã³ã°æ¦ç¥ã使ç¨ãã WritableStream
ã®ä½æã示ãã¦ãã¾ãã æ¬¡ã«ãsendMessage()
ã¨ãã颿°ãå¼ã³åºããæ°ãã使ããã¹ããªã¼ã ã¨æååãæ¸¡ãã¾ãã ãã®é¢æ°å
ã§ãWritableStreamDefaultWriter
ã®ã¤ã³ã¹ã¿ã³ã¹ãè¿ãã¹ããªã¼ã ã® getWriter()
ã¡ã½ãããå¼ã³åºãã¾ãã forEach()
å¼ã³åºãã使ç¨ãã¦ãæååã®åãã£ã³ã¯ãã¹ããªã¼ã ã«æ¸ãè¾¼ã¿ã¾ãã æå¾ã«ãwrite()
ããã³ close()
ã¯ããã£ã³ã¯ã¨ã¹ããªã¼ã ã®æåã¾ãã¯å¤±æã«å¯¾å¦ããããã®ãããã¹ãè¿ãã¾ãã
const list = document.querySelector("ul");
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.log("Chunk error:", err);
});
});
// ã©ã¤ã¿ã¼ãéããåã«ãã¹ã¦ã®ãã£ã³ã¯ã
// 確å®ã«æ¸ãè¾¼ã¾ããããã«ãready ãå度å¼ã³åºãã¾ãã
defaultWriter.ready
.then(() => {
defaultWriter.close();
})
.then(() => {
console.log("All chunks written");
})
.catch((err) => {
console.log("Stream 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