EventEmitter를 상속하는 클래스에는 일반적으로 오류를 처리하는 두 개의 점이 있습니다.EventEmitter의 오류 처리
someClass.on('error', function eventEmitterCallback(err){/* handle error*/});
//and
someClass.someAsyncAction(function asyncActionCallback(err){/* handle error*/})
어디서 오류가 발생하고 어떤 콜백이 실행되는지 알 수 없습니다. 예를 들어 , tedious (MS SQL 서버 모듈) :
- 잘못된 암호 : 모두 콜백
- 잘못된 데이터베이스 이름 : 만
eventEmitterCallback
;someAsyncAction
오류없이 - 잘못된 호스트를 실행합니다에만
someAsyncAction
호스트의
- Icorrect 형식 IP (예 :
1234.10.0.1
에 대한) : 오류 :
나는 간단한 함수를 만들려하지 않고 바로 아래 Node.js를 그 모듈에서 콜백의 첫 번째 인수로 모든 오류를 구분합니다.
function getSomeStuffFromDb(callback) {
var connection = new dbConnection(options);
connection.on('error', callback);
connection.connect(function(err) {
if (err) return callback(err);
/*exec SQL query*/
}
}
물론 오류가 발생하면 콜백을 한 번만 실행하고 싶습니다. 어떻게해야합니까? 얼마나 정확하게 두 점에서 오류 처리를 결합합니까? 어쩌면 클래스에서 EventEmiter를 상속 한 클래스를 사용한다면 EventEmitter 클래스에서 상속 받아야합니다.