Baseline Widely available
ReadableStream()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã¯ãæå®ããããã³ãã©ã¼ããèªã¿åãå¯è½ãªã¹ããªã¼ã ã®ãªãã¸ã§ã¯ãã使ãã¦è¿ãã¾ãã
ãã¹ã¦ã®å¼æ°ã¯æè¡çã«ãªãã·ã§ã³ã§ããã underlyingSource
ãçç¥ããã¨ãã½ã¼ã¹ãæããªãã¹ããªã¼ã ã«ãªããããããèªã¿è¾¼ããã¨ãã§ããªããªããã¨ã«æ³¨æãã¦ãã ããï¼ãªã¼ãã¼ã¯æ±ºãã¦è§£æ±ºãããªããããã¹ãè¿ãã¾ãï¼ã
new ReadableStream()
new ReadableStream(underlyingSource)
new ReadableStream(underlyingSource, queuingStrategy)
弿°
underlyingSource
çç¥å¯
æ§ç¯ãããã¹ããªã¼ã ã®ã¤ã³ã¹ã¿ã³ã¹ã®åä½ãå®ç¾©ããã¡ã½ããã¨ããããã£ãå«ããªãã¸ã§ã¯ãã underlyingSource
ã«ã¯æ¬¡ã®ãã®ãå«ãããã¨ãã§ãã¾ãã
start
(controller) çç¥å¯
ããã¯ããªãã¸ã§ã¯ããæ§ç¯ãããã¨ããã«å¼ã³åºãããã¡ã½ããã§ãã ãã®ã¡ã½ããã®å
容ã¯éçºè
ãå®ç¾©ããã¹ããªã¼ã ã®ã½ã¼ã¹ã¸ã®ã¢ã¯ã»ã¹ãåå¾ããã¹ããªã¼ã æ©è½ãè¨å®ããããã«å¿
è¦ãªä»ã®ãã¹ã¦ã®æä½ãè¡ãå¿
è¦ãããã¾ãã ãã®ããã»ã¹ãéåæã§å®è¡ããå ´åãæåã¾ãã¯å¤±æãéç¥ãããããã¹ãè¿ããã¨ãã§ãã¾ãããã®ã¡ã½ããã«æ¸¡ããã controller
弿°ã¯ã ReadableStreamDefaultController
ã¾ã㯠ReadableByteStreamController
ã type
ããããã£ã®å¤ã«å¿ãã¦æå®ãã¾ããéçºè
ã¯ããã使ç¨ãã¦ãã»ããã¢ããä¸ã«ã¹ããªã¼ã ãå¶å¾¡ã§ãã¾ãã
pull
(controller) çç¥å¯
ãã®ã¡ã½ããã¯ãéçºè
ãå®ç¾©ããã¹ããªã¼ã ã®å
é¨ã«ãããã£ã³ã¯ã®ãã¥ã¼ããã£ã±ãã«ãªã£ã¦ããªãå ´åãæé«æ°´æºç¹ã«éããã¾ã§ç¹°ãè¿ãå¼ã³åºããã¾ãã pull()
ããããã¹ãè¿ãå ´åããã®ãããã¹ãæºããããã¾ã§åã³å¼ã³åºããã¾ããããããã¹ãæå¦ãããå ´åãã¹ããªã¼ã ã¯ã¨ã©ã¼ã«ãªãã¾ãããã®ã¡ã½ããã«æ¸¡ããã controller
弿°ã¯ã ReadableStreamDefaultController
ã¾ã㯠ReadableByteStreamController
ã type
ããããã£ã®å¤ã«å¿ãã¦æå®ãã¾ããéçºè
ã¯ããã使ç¨ãã¦ãããå¤ãã®ãã£ã³ã¯ãèªã¿åãããããã¹ããªã¼ã ãå¶å¾¡ã§ãã¾ãããã®é¢æ°ã¯ start()
ãå®å
¨ã«çµäºããã¾ã§å¼ã³åºããã¾ãããããã«ããã®é¢æ°ã¯å°ãªãã¨ãä¸ã¤ã®ãã£ã³ã¯ããã¥ã¼ã«å
¥ããããããBYOB ãªã¯ã¨ã¹ããå±¥è¡ãããå ´åã«ã®ã¿ç¹°ãè¿ãå¼ã³åºããã¾ãã
cancel
(reason) çç¥å¯
ãã®ã¡ã½ããã¯ãéçºè
ãå®ç¾©ããã¹ããªã¼ã ããã£ã³ã»ã«ããããã¨ãã¢ããªãéç¥ããå ´åã«å¼ã³åºããã¾ãï¼ä¾ãã°ãReadableStream.cancel()
ãå¼ã³åºãããå ´åï¼ã å
容ã¯ãã¹ããªã¼ã ã®ã½ã¼ã¹ã¸ã®ã¢ã¯ã»ã¹ãè§£æ¾ããããã«å¿
è¦ãªãã¨ãè¡ãå¿
è¦ãããã¾ãã ãã®ããã»ã¹ãéåæã®å ´åãæåã¾ãã¯å¤±æãéç¥ãããããã¹ãè¿ããã¨ãã§ãã¾ãã reason
弿°ã«ã¯ãã¹ããªã¼ã ããã£ã³ã»ã«ãããçç±ã説æããæååãå«ã¾ãã¦ãã¾ãã
type
çç¥å¯
ãã®ããããã£ã¯ãã©ã®ç¨®é¡ã®èªã¿åãå¯è½ãªã¹ããªã¼ã ãå¦çãããããå¶å¾¡ãã¾ãã "bytes"
ã«è¨å®ãããå¤ãå«ã¾ãã¦ããå ´åãæ¸¡ãããã³ã³ããã¼ã©ã¼ãªãã¸ã§ã¯ãã¯ã BYOB ï¼ç¬èªã®ãããã¡ã¼ãæã¡è¾¼ãï¼/ãã¤ãã¹ããªã¼ã ãå¦çã§ãã ReadableByteStreamController
ã«ãªãã¾ãã å«ã¾ãã¦ããªãå ´åãæ¸¡ãããã³ã³ããã¼ã©ã¼ã¯ ReadableStreamDefaultController
ã«ãªãã¾ãã
autoAllocateChunkSize
çç¥å¯
ãã¤ãã¹ããªã¼ã ã®å ´åãéçºè
㯠autoAllocateChunkSize
ã«æ£ã®æ´æ°å¤ãè¨å®ãã¦ãã¹ããªã¼ã ã®èªåå²ãå½ã¦æ©è½ããªã³ã«ã§ãã¾ãã ãããè¨å®ããã¨ãã¹ããªã¼ã ã®å®è£
ã¯ãå¿
è¦ãªã¨ãã«èªåçã« ReadableByteStreamController.byobRequest
ã«æå®ãããµã¤ãºã®ãã¥ã¼ãããã¡ã¼ã確ä¿ããããã«ãªãã¾ãã
æ¢å®ã® ReadableStreamDefaultReader
ã§ã¼ãã³ãã¼è»¢éã使ç¨ããããã«ã¯ããã®è¨å®ãããªããã°ãªãã¾ããã è¨å®ããã¦ããªãå ´åãæ¢å®ã®ãªã¼ãã¼ã¯ãã¼ã¿ãã¹ããªã¼ã ãã¾ããã ReadableByteStreamController.byobRequest
ã¯å¸¸ã« null
ã¨ãªããã³ã³ã·ã¥ã¼ãã¼ã¸ã®è»¢éã¯ã¹ããªã¼ã å
ã®ãã¥ã¼ãçµç±ããªããã°ãªãã¾ããã
queuingStrategy
çç¥å¯
ãªãã·ã§ã³ã§ã¹ããªã¼ã ã®ãã¥ã¼ã¤ã³ã°æ¦ç¥ãå®ç¾©ãããªãã¸ã§ã¯ãã ããã«ã¯æ¬¡ã® 2 ã¤ã®å¼æ°ãå¿ è¦ã§ãã
highWaterMark
è² ã§ãªãæ´æ° â ããã¯ãããã¯ãã¬ãã·ã£ã¼ãé©ç¨ãããåã«å é¨ãã¥ã¼ã«å«ãããã¨ãã§ãããã£ã³ã¯ã®ç·æ°ãå®ç¾©ãã¾ãã
size(chunk)
弿° chunk
ãå«ãã¡ã½ãã â ããã¯ãåãã£ã³ã¯ã«ä½¿ç¨ãããµã¤ãºããã¤ãåä½ã§ç¤ºãã¾ãã
ã¡ã¢: ç¬èªã®ã«ã¹ã¿ã queuingStrategy
ãå®ç¾©ãããããã®ãªãã¸ã§ã¯ãå¤ã« ByteLengthQueuingStrategy
ã¾ã㯠CountQueuingStrategy
ã®ã¤ã³ã¹ã¿ã³ã¹ã使ç¨ã§ãã¾ãã queuingStrategy
ãæå®ããã¦ããªãå ´åã使ç¨ãããæ¢å®å¤ã¯ãæé«æ°´æºç¹ã 1 ã® CountQueuingStrategy
ã¨åãã§ãã
ReadableStream
ãªãã¸ã§ã¯ãã®ã¤ã³ã¹ã¿ã³ã¹ã
RangeError
æå®ããã type
å¤ãã "bytes"
ã§ã undefined
ã§ããªãå ´åã«çºçãã¾ãã
次ã®åç´ãªä¾ã§ã¯ãã³ã³ã¹ãã©ã¯ã¿ã¼ã使ç¨ãã¦ç¬èªã® ReadableStream
ã使ãã¾ãï¼å®å
¨ãªã³ã¼ãã«ã¤ãã¦ã¯ãåç´ãªã©ã³ãã ã¹ããªã¼ã ã®ä¾ãåç
§ï¼ã start()
颿°ã¯ã1 ç§ãã¨ã«ã©ã³ãã ãªããã¹ãæååãçæãããããã¹ããªã¼ã ã®ãã¥ã¼ã«å
¥ãã¾ãã ReadableStream.cancel()
ãä½ããã®çç±ã§å¼ã³åºãããå ´åãçæã忢ããããã« cancel()
颿°ãæä¾ãã¾ãã
ãã¿ã³ãæ¼ãã¨ãçæã忢ããReadableStreamDefaultController.close()
ã使ç¨ãã¦ã¹ããªã¼ã ãéããã¹ããªã¼ã ãããã¼ã¿ãèªã¿åãå¥ã®é¢æ°ãå®è¡ãã¾ãã
const stream = new ReadableStream({
start(controller) {
interval = setInterval(() => {
let string = randomChars();
// ã¹ããªã¼ã ã«æååã追å
controller.enqueue(string);
// ãããç»é¢ã«è¡¨ç¤º
let listItem = document.createElement("li");
listItem.textContent = string;
list1.appendChild(listItem);
}, 1000);
button.addEventListener("click", () => {
clearInterval(interval);
fetchStream();
controller.close();
});
},
pull(controller) {
// ãã®ä¾ã§ã¯å®éã«ã¯ pull ã¯å¿
è¦ããã¾ãã
},
cancel() {
// ãªã¼ãã¼ããã£ã³ã»ã«ãããå ´åã«å¼ã³åºãããããã
// æååã®çæã忢ããå¿
è¦ãããã¾ã
clearInterval(interval);
},
});
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
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