Bluebird Promise 문서에서 .then(success, 실패)는 안티패턴으로 표시됩니다. 그 이유는 무엇입니까?
권장되는 .then(success).catch(fail) 연결과 달리 .then(success, failure)를 사용하면 제어 흐름 문제가 발생합니다.
.then(성공, 실패) 사용:
try { results = some_call(); } catch (e) { logger.log(e); break then; } else logger.log(results);
사용 .then(success).catch(fail):
try { var results = some_call(); logger.log(results); } catch (e) { logger.log(e); }
안티패턴은 오류 처리를 단일 최종 catch 핸들러로 제한하므로 권장되지 않습니다. 그러나 다음과 같은 시나리오에서 유용할 수 있습니다.
콜백 반복을 방지하려면 다음을 사용할 수 있습니다. 다음 패턴:
some_promise_call() .catch(function(e) { return e; // it's OK, we'll just log it }) .done(function(res) { logger.log(res); });
또는 이 목적으로 .finally() 메서드를 활용할 수도 있습니다.
위 내용은 Promise Handling에서 '.then(success, failure)'가 안티 패턴으로 간주되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!