저는 꽤 오랫동안 NodeJS 코드를 작성해 왔으며 사람들이 구현 한 다양한 기술을 보았습니다. 내 질문은 기상이 매개 변수 어설 션이 실패 할 때 서명이 Promise
을 반환하고 직접 던지는 기능을 갖는 모범 사례로 간주됩니다.함수가 Promise를 반환 할 때 Javascript에서 매개 변수 어설 션을 직접 throw해야합니까?
우리는 이것을해야한다고 생각합니까? :
던져 동기화 방법
function asyncPromise(param) {
assert(param, 'Missing required parameter');
// Param ok
return Promise.resolve(param);
}
또는이? :
거부 약속
function rejectPromise(param) {
if (typeof param === 'undefined') {
return Promise.reject(new Error('Missing required parameter'));
}
// Param valid
return Promise.resolve(value);
}
내 직감이 함수가있다 그러나 경우, 계속 안 무언가로 고려되어야한다 직접 잘못된 매개 변수를 입력하기 때문에 던지는 첫 번째 방법을 가라고 말하고있다 Promise를 반환하는 서명의 경우 호출자는 .catch 오류 처리를 기대하며 직접 throw되는 경우 오류를 놓치게됩니다.
귀하의 의견은 무엇입니까?
의견을 말하기는이 사이트의 범위를 벗어납니다. https://stackoverflow.com/help/on-topic – Purefan
나는 '실행'을 사용하지만 실행 프로그램에서는 사용합니다. 이것은'.reject'와 동일하지만 더 명백합니다. – georg
@ Purefan 아마도 의견을 묻는 것이 적절한 정의가 아니었을 것입니다 ... 아마도 가장 좋은 방법이 무엇인지 물을 것이라고 말할 수 있습니다. (있는 경우) – mitsos1os