Baseline 2023
Newly available
signal
㯠WritableStreamDefaultController
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®èªã¿åãå°ç¨ããããã£ã§ããã®ã³ã³ããã¼ã©ã¼ã«é¢é£ä»ãããã AbortSignal
ãè¿ãã¾ãã
AbortSignal
ãªãã¸ã§ã¯ãã§ãã
ãã®ä¾ã§ã¯ããã¼ã«ã«ã·ã³ã¯ã使ç¨ãã¦ä½éå¦çãã·ãã¥ã¬ã¼ã·ã§ã³ãã¾ãããã¼ã¿ãæ¸ãè¾¼ã¾ãããä½ããã¾ããããå°ãå¾
ã¡ã¾ããããã«ããã writer.abort()
ã¡ã½ãããå¼ã³åºãã¦ãããã¹ãå³åº§ã«æå¦ããã®ã«ååãªæéãå¾ããã¾ãã
const writingStream = new WritableStream({
// é·ãå¦çãã·ãã¥ã¬ã¼ã·ã§ã³ããããã«ãä½éãã¼ã«ã«ã·ã³ã¯ãå®ç¾©ãã¾ãã
write(controller) {
return new Promise((resolve, reject) => {
controller.signal.addEventListener("abort", () =>
reject(controller.signal.reason),
);
// ä½ãããã«ãã¼ã«ã«ã·ã³ã¯ã®ãã¼ã¿ã§å¾
ã¡ã¾ãã
setTimeout(resolve, 1000); // ä½éå¦çãã·ãã¥ã¬ã¼ã·ã§ã³ããã¿ã¤ã ã¢ã¦ã
});
},
});
// æ¸ãè¾¼ã¿ãå®è¡
const writer = writingStream.getWriter();
writer.write("Lorem ipsum test data");
// æåã§æ¸ãè¾¼ã¿ã䏿¢
await writer.abort("Manual abort!");
AbortSignal
ãä¸å±¤ã¬ã¤ã¤ã¼ã¸ç§»è²
ãã®ä¾ã§ã¯ããã§ãã API ã使ç¨ãã¦ãå®éã«ã¡ãã»ã¼ã¸ããµã¼ãã¼ã«éä¿¡ãã¦ãã¾ãããã§ãã API 㯠AbortSignal
ã«ã対å¿ãã¦ãã¾ãã fetch
ã¡ã½ãã㨠WritableStreamDefaultController
ã®ä¸¡æ¹ã«åããªãã¸ã§ã¯ãã使ç¨ãããã¨ãå¯è½ã§ãã
const endpoint = "https://www.example.com/api"; // ãã¢ç¨ã®æ¶ç©ºã® URL
const writingStream = new WritableStream({
async write(chunk, controller) {
// Write to the server using the Fetch API
const response = await fetch(endpoint, {
signal: controller.signal, // fetch 㨠controller ã®ä¸¡æ¹ã§åããªãã¸ã§ã¯ãã使ç¨
method: "POST",
body: chunk,
});
await response.text();
},
});
// æ¸ãè¾¼ã¿ãå®è¡
const writer = writingStream.getWriter();
writer.write("Lorem ipsum test data");
// æåã§æ¸ãè¾¼ã¿ã䏿¢
await writer.abort("Manual abort!");
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§
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