Streams API
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2019ë 1ì.
* Some parts of this feature may have varying levels of support.
Experimental: ì´ ê¸°ë¥ì ì¤íì ì¸ ê¸°ë¥ì
ëë¤.
íë¡ëì
íê²½ìì ì¬ì©í기 ì ì ë¸ë¼ì°ì í¸íì± í를 주ì ê¹ê² íì¸íì¸ì.
Streams APIë Javascript를 ì´ì©í´ ë¤í¸ìí¬ë¥¼ íµí´ ì ì¡ë ë°ì´í° ì¤í¸ë¦¼ì ì ê·¼íì¬ ìíë ëë¡ ì²ë¦¬ê° ê°ë¥í API를 ì ê³µí©ëë¤.
ê°ë ê³¼ ì¬ì©ë²
Streamingì ë¤í¸ìí¬ë¥¼ íµí´ ë°ì 리ìì¤ë¥¼ ìì ì¡°ê°ì¼ë¡ ëëì´, Bit ë¨ìë¡ ì²ë¦¬í©ëë¤. ì´ë ë¸ë¼ì°ì ê° ìì í ììì ì¹íì´ì§ì ííí ë ì£¼ë¡ ì¬ì©íë ë°©ë²ì ëë¤. â Video bufferë ì¬ìë기 ì ì²ì²í ì±ìì§ë©° ê°ë ì´ë¯¸ì§ë ì²ì²í ë¡ë©ëë ê²ì ë³´ì¤ ì ìì ê²ëë¤..
íì§ë§ Javascriptììë ì§ê¸ê¹ì§ ë¶ê°ë¥íìµëë¤. ì´ì ìë (ë¹ëì¤ë í ì¤í¸ íì¼ ë±ì) 리ìì¤ë¥¼ ì²ë¦¬í기 ìí´ì ì°ì , ì ì²´ íì¼ì ë¤ì´ë¡ë ë°ì í ìë§ì í¬ë§·ì¼ë¡ íì±ë íìì¼, ì ì¡ë ì ì²´ ë°ì´í°ë¥¼ ì²ë¦¬í ì ìììµëë¤.
With Javascriptì Streamì´ ëì ë íìë 모ë ê²ì´ ë°ëìëë°, ì´ì Buffer, String ëë blob ìì´ë Javascript를 íµí´ Raw Data를 ë¹í¸ ë¨ìë¡ ì²ë¦¬í ì ììµëë¤.

ì¥ì ì ë ììµëë¤ â Streamì ìì ëë ì¢ ë£ë¥¼ ê°ì§í ì ìì¼ë©°, ì¬ë¬ streamì ì®ì´ì ìë¬ë¥¼ ì²ë¦¬íê±°ë íìí ê²½ì° streamì ì·¨ìí ìë ììµëë¤. ëí streamì´ ì½ì´ë¤ì´ë ìëì ë°ë¼ ë°ìí ìë ìì§ì.
Streamì 주ìí 기본 ì¬ì©ë²ì ìëµ ë°ì´í°ë¥¼ streamì¼ë¡ ë§ëë ê²ì
ëë¤. fetch()를 íµí´ ì ìì ì¼ë¡ ì ì¡ë ìëµ Bodyë ReadableStreamë¡ íí ê°ë¥í©ëë¤. ëí ReadableStream.getReader()를 íµí´ Reader ê°ì²´ë¥¼ ì»ì´ ë°ì´í°ë¥¼ ì½ì ìë ìì¼ë©°, ReadableStream.cancel()ë¡ Streamì ì·¨ìíë ê² ë±ì´ ê°ë¥í©ëë¤.
ì¡°ê¸ ë ë³µì¡í ì¬ì©ë²ì ReadableStream() ìì±ì를 íµí´ ì¬ì©ìê° ì§ì Streamì ìì±íë ê²ì
ëë¤. ì를 ë¤ìë©´ service workerì ì ë¬í ë°ì´í°ë¥¼ Streamì¼ë¡ ë§ë¤ ìë ììµëë¤.
WritableStreamì ì¬ì©íë©´ Streamì ë°ì´í°ë¥¼ ì°ë ê²ë ê°ë¥í©ëë¤..
ì°¸ê³ : Streams API concepts, Using readable streams, Using writable streams â íì´ì§ìì streamì ê´í ë ìì¸í ì´ë¡ ê³¼ ìì 를 ì°¾ì ì ììµëë¤.
ì¤í¸ë¦¼ ì¸í°íì´ì¤
>ì½ê¸° ì¤í¸ë¦¼(Readable streams)
ReadableStream-
ë°ì´í° ì½ê¸° ì¤í¸ë¦¼ì ëíë ëë¤. Fetch APIì ê²°ê³¼ ì¤í¸ë¦¼ì´ë ê°ë°ìê° ì ìí ì¤í¸ë¦¼(ì, 커ì¤í
ReadableStream()í´ëì¤)ë±ì í¸ë¤ë§í ì ììµëë¤. ReadableStreamDefaultReader-
ë¤í¸ìí¬(ì, fetch ìì²)ë±ìì ì ë¬ë ì¤í¸ë¦¼ ë°ì´í°ë¥¼ ì²ë¦¬íë 기본 Reader를 ë°íí©ëë¤.
ReadableStreamDefaultController-
ReadableStreamì ìíë ë´ë¶ í를 컨í¸ë¡¤ í ì ìë 기본 컨í¸ë¡¤ë¬ë¥¼ ë°íí©ëë¤. 기본 컨í¸ë¡¤ë¬ë Byte ì¤í¸ë¦¼ ì¸ì ì¤í¸ë¦¼ìë§ í´ë¹í©ëë¤.
ì°ê¸° ì¤í¸ë¦¼(writable streams)
WritableStream-
목ì ì§ ì¤í¸ë¦¼ì ë°ì´í°ë¥¼ ì°ê¸° ìí íì¤ ì¶ì ì¸í°íì´ì¤ë¥¼ ì ê³µíë ê°ì²´ì ëë¤. ì´ ê°ì²´ë ë´ì¥ ë°±íë ì ì íìì 구ííê³ ììµëë¤.
WritableStreamDefaultWriter-
ì°ê¸° ì¤í¸ë¦¼ì ë°ì´í° ì¡°ê°ë¤ì ì°ê¸° ìí 기본 Writer ê°ì²´ë¥¼ ë°ííë¤.
WritableStreamDefaultController-
WritableStreamìí를 컨í¸ë¡¤íë 기본 컨í¸ë¡¤ë¬ë¥¼ ë°ííë¤.WritableStreamì ìì±íë©´ í´ë¹ ì¤í¸ë¦¼ì 컨í¸ë¡¤ í기 ìí´WritableStreamDefaultControllerì¸ì¤í´ì¤ê° ë´ë¶ì ì¼ë¡ ìì±ëë¤.
ê´ë ¨ ì¤í¸ë¦¼ APIì 기ë¥
ByteLengthQueuingStrategy-
ì¤í¸ë¦¼ì ìì±í ë 기본ì¼ë¡ ì¬ì© í ë´ì¥ byte length queuing strategy를 ì ê³µí©ëë¤.
CountQueuingStrategy-
ì¤í¸ë¦¼ì ìì±í ë 기본ì ì¼ë¡ ì¬ì© í ë´ì¥ chunk counting queuing strategy를 ì ê³µí©ëë¤..
ì¸ë¶ API íì¥
Request-
ì
Requestê°ì²´ê° ìì±ë ëRequestInitëì ë리ìbodyìReadableStream를 ì ë¬í ì ììµëë¤. ì´Requestëfetch()ì ì ë¬ëìì ì¤í¸ë¦¼ì fetchíëë° ì¬ì©ë©ëë¤. Body-
fetch()ì±ê³µ ì 기본ì ì¼ë¡BodyReadableStreamë¡ ì ê³µëë©°, reader를 ë¶ì¬ ë°ì´í°ë¥¼ ì½ì´ë¤ì¼ ì ììµëë¤.
ByteStream ê´ë ¨ ì¸í°íì´ì¤
ê²½ê³ : ì¤ì: ìë í목ë¤ì ìì§ êµ¬íë ê³³ì´ ìì¼ë©°, ì¤íì ì¸ë¶ ì¬íì´ êµ¬íí ì ìì ë§í¼ ì¶©ë¶í ì§ ë ¼ìê° ì§íì¤ì ëë¤. ì¶í ë³ê²½ë ì ììµëë¤.
ReadableStreamBYOBReader-
ê°ë°ìê° ì§ì ì ê³µíì¬ stream data를 ì½ì ì ìë BYOB ("bring your own buffer") reader를 ííí©ëë¤. (ì 커ì¤í
ReadableStream()ìì±ì). ReadableByteStreamController-
ReadableStreamì ìíì ë´ë¶ í를 컨í¸ë¡¤ íë 컨í¸ë¡¤ë¬ ê°ì²´ë¥¼ ííí©ëë¤. Byte stream 컨í¸ë¡¤ë¬ë byte streamì ìí 컨í¸ë¡¤ë¬ì ëë¤. ReadableStreamBYOBRequest-
ReadableByteStreamControllerì request를 ííí©ëë¤.
ìì
Streams API 문ìì 참조í ë§í ìì 를 í¨ê» ìì±íììµëë¤ â mdn/dom-examples/streams 를 참조íì¸ì. ìì ë ìëì ê°ìµëë¤.:
- Simple stream pump: ReadableStreamìì ì´ë»ê² ë°ì´í°ë¥¼ ì½ì´ë¤ì¬ ë¤ë¥¸ ê³³ì¼ë¡ ì ë¬íëì§ ë³´ì¬ì¤ëë¤.
- Grayscale a PNG: PNG fileì ReadableStreamì íµí´ grayscaleë¡ ë³ê²½íë ë°©ë²ì ë³´ì¬ì¤ëë¤.
- Simple random stream: 커ì¤í ì¤í¸ë¦¼ì íµí´ 무ìì 문ìì´ì ìì±íê³ , ë°ì´í° ì²í¬ë¡ íìí ë¤, ë¤ì ì½ì´ë¤ì´ë ë°©ë²ì ëí´ ì¤ëª í©ëë¤.
- Simple tee example: ì´ ìì ë simple random stream ìì 를 íì¥íì¬, ì¤í¸ë¦¼ì ë¶í íê³ ê° ì¤í¸ë¦¼ì´ ë 립ì ì¼ë¡ ë°ì´í°ë¥¼ ì½ë ë°©ë²ì ë³´ì¬ì¤ëë¤.
- Simple writer: Writable streamì ë°ì´í°ë¥¼ ì°ë ë°©ë²ì ì¤ëª íê³ , ì¤í¸ë¦¼ ë°ì´í°ë¥¼ ëì½ëíì¬ UIë¡ íííë ë°©ë²ì ë³´ì¬ì¤ëë¤.
- Unpack chunks of a PNG:
pipeThrough()ì íµí´ PNG fileì PNG ì²í¬ ì¤í¸ë¦¼ì¼ë¡ ë³ííë ë°©ìì¼ë¡ ReadableStreamì ë¤ë¥¸ ë°ì´í° íì ì¤í¸ë¦¼ì¼ë¡ ì ííë ë°©ë²ì ì¤ëª í©ëë¤.
ë¤ë¥¸ ê°ë°ìì ìì :
ëª ì¸ì
| Specification |
|---|
| Streams> # rs-class> |
| Streams> # ws-class> |