본문 바로가기

dev/JavaScript

CPS 예외 처리 패턴

CPS에서는 일반적으로 요류를 호출 체인의 다음에서 콜백으로 전달하여 수행된다.

Node.js 콜백 규칙에 따르면 오류는 콜백의 첫번째 인수로 전달된다.

const fs = require('fs')
function readJSON(fileName, callback){
	fs.readFile(filename, 'utf8',(err,data)=>{
    	let parsed;
        if(err)
        	// 오류 전달 후 현재 함수 종료
            // 콜백이 호출되는 즉시 readJSON을 종료하기 위해 return을 사용한다.
        	return callback(err);
        try{
        	parsed = JSON.parse(data)
        }catch(err){
        	// 에러 catch 후 오류 전달
        	return callback(err);
        }
        callback(null,parsed)
    }
}

비동기 콜백 내부에서 예외가 발생하면 예외가 이벤트 루프로 이동하여 다음 콜백으로 전파되지 않는다. 어플리케이션은 예외가 이벤트 루프에 도착하는 순간 중단된다.

'dev > JavaScript' 카테고리의 다른 글

debounce와 throttle  (0) 2020.08.20
JavaScript 안정 정렬  (2) 2020.07.28
JS 코딩테스트를 위한 코드 스니펫  (0) 2020.07.20
자바스크립트 Execution Context 1  (0) 2019.06.24
화살표 함수와 this  (0) 2019.05.30