Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jsSpACEx 158 of 294 menu
◀ ▶

JavaScript에서 비동기 콜백의 예외 처리

make에 배열에 존재하지 않는 요소의 번호가 매개변수로 전달된 경우를 예외 상황이라고 가정합니다. 이미 알고 있듯이, 비동기 함수 내부에서 발생한 예외는 try-catch를 통해 잡을 수 없습니다. 우리의 경우, make 또는 콜백 내부에서 발생한 예외는 잡히지 않습니다:

try { make(10, function(res) { console.log(res); }); } catch(err) { // 잡히지 않음 }

콜백 방식에서는 예외를 다음과 같이 처리합니다: 콜백의 첫 번째 매개변수에 결과를, 두 번째 매개변수에 오류를 보냅니다. 이 경우 오류 처리는 다음과 같이 이루어집니다:

make(10, function(res, err) { if (!err) { console.log(res); // 오류가 발생하지 않음, 결과를 출력 } else { console.log(err); // 오류가 발생함, 오류 텍스트를 출력 } });

우리의 make 함수 코드를 설명한 방식에 맞게 수정해 봅시다:

function make(num, callback) { setTimeout(function() { let arr = [1, 2, 3, 4, 5]; let err; if (arr[num] === undefined) { err = 'elem not exists'; // 오류 텍스트 } else { err = null; // 오류 없음 } callback(arr[num], err); }, 3000); }
← →
↑
한국어▼
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부