AbortController
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2019ë 3ì.
Experimental: ì´ ê¸°ë¥ì ì¤íì ì¸ ê¸°ë¥ì
ëë¤.
íë¡ëì
íê²½ìì ì¬ì©í기 ì ì ë¸ë¼ì°ì í¸íì± í를 주ì ê¹ê² íì¸íì¸ì.
AbortController ì¸í°íì´ì¤ë íë ì´ìì ì¹ ìì²ì ì·¨ìí ì ìê² í´ì¤ë¤.
AbortController.AbortController() ìì±ì를 ì¬ì©í´ ìë¡ì´ AbortController 를 ìì±íë¤. AbortSignal ê°ì²´ë¥¼ ì¬ì©í´ DOM ìì²ê³¼ì íµì ì´ ìë£ëë¤.
ìì±ì
AbortController()-
ìë¡ì´
AbortControllerê°ì²´ ì¸í°íì´ì¤ë¥¼ ìì±íë¤.
íë¡í¼í°
AbortController.signalì½ê¸° ì ì©-
DOM ìì²ê³¼ íµì íê±°ë ì·¨ìíëë° ì¬ì©ëë
AbortSignalê°ì²´ ì¸í°íì´ì¤ë¥¼ ë°ííë¤.
ë©ìë
AbortController.abort()-
DOM ìì²ì´ ìë£ë기 ì ì ì·¨ìíë¤. ì´ë¥¼ íµí´ fetch ìì², 모ë ìëµ
Bodyìë¹, ì¤í¸ë¦¼ì ì·¨ìí ì ìë¤.
ìì
ë¤ì ì¤ëí«ììë Fetch API를 ì¬ì©í´ ë¹ëì¤ë¥¼ ë¤ì´ë¡ëíë ê²ì 목íë¡ íë¤.
먼ì AbortController() ìì±ì를 ì¬ì©í´ 컨í¸ë¡¤ë¬ë¥¼ AbortController.signal íë¡í¼í°ë¥¼ ì¬ì©í´ AbortSignal ê°ì²´ì ê´ê³ë 참조를 ì»ëë¤.
Fetch ìì²ì ììí ë, ìì²ì ìµì
ê°ì²´ ë´ë¶ì AbortSignal ìµì
ì ì ë¬íë¤(ìëì {signal} ì°¸ê³ ). ì´ê²ì ì í¸ì 컨í¸ë¡¤ë¬ë¥¼ fetch ìì²ê³¼ ê´ê³ì§ê³ , ìëì ë ë²ì§¸ ì´ë²¤í¸ 리ì¤ëìì ë³´ì¬ì£¼ë¯ì´ AbortController.abort()를 í¸ì¶íì¬ ì´ë¥¼ ì·¨ìí ì ìê²íë¤.
var controller = new AbortController();
var signal = controller.signal;
var downloadBtn = document.querySelector('.download');
var abortBtn = document.querySelector('.abort');
downloadBtn.addEventListener('click', fetchVideo);
abortBtn.addEventListener('click', function() {
controller.abort();
console.log('Download aborted');
});
function fetchVideo() {
...
fetch(url, {signal}).then(function(response) {
...
}).catch(function(e) {
reports.textContent = 'Download error: ' + e.message;
})
}
ì°¸ê³ :
abort()ê° í¸ì¶ëë©´, fetch() promiseë AbortErrorì¼ë¡ ëª
ëª
ë DOMExceptionê³¼ í¨ê» rejectëë¤.
ëìíë ìì í ìì ë GitHubìì íì¸ í ì ìë¤ â abort-api ì°¸ê³ (ë¼ì´ë¸ ì¤íë íì¸í ì ìë¤).
ëª ì¸
| Specification |
|---|
| DOM > # interface-abortcontroller > |
ë¸ë¼ì°ì í¸íì±
í¨ê» 보기
- Fetch API
- Abortable Fetch by Jake Archibald