> 웹 프론트엔드 > JS 튜토리얼 > Promise `.then` 메서드에서 콜백을 사용하는 것이 안티 패턴인 이유는 무엇입니까?

Promise `.then` 메서드에서 콜백을 사용하는 것이 안티 패턴인 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-11-14 14:40:02
원래의
716명이 탐색했습니다.

Why is Using Callbacks in Promise `.then` Methods an Anti-Pattern?

Promise에서 콜백 사용 .then 메서드: 안티 패턴

다음에서 볼 수 있듯이 AngularJS 서비스에 콜백 함수를 제공하는 방법 귀하가 제공한 코드 조각은 편리해 보일 수 있지만 안티 패턴을 따릅니다. 이 접근 방식은 Promises가 의도한 비동기 프로그래밍 흐름과 제어 반전을 방해합니다.

왜 안티 패턴인가요?

  • 인터럽트 체이닝: Promise .then 메소드를 사용하면 여러 비동기 작업을 연결할 수 있습니다. 콜백을 사용하면 한 작업의 결과를 후속 작업에서 쉽게 계속해서 처리하는 기능을 잃게 됩니다.
  • 제어 반전: 원본 코드는 소비자 모듈에서 공급자 모듈로의 콜백. 이로 인해 실행 흐름을 관리하고 디버그하기가 더 어려워집니다.
  • 불필요한 약속의 복잡성: 약속은 비동기 작업을 처리하기 위한 메커니즘을 제공합니다. 콜백에 프라미스를 래핑하면 불필요한 복잡성이 발생하고 코드 의도가 난독화됩니다.

리팩토링 솔루션:

코드를 리팩터링하고 이러한 문제를 제거하려면 , 콜백 함수 없이 일반 .then 메서드를 사용할 수 있습니다.

var getTokens = function() {
  return $http.get('/api/tokens');
};
로그인 후 복사

소비자에서 모듈을 사용하면 .then을 직접 사용하여 작업을 연결할 수 있습니다.

yourModule.getTokens()
  .then(function(response) {
    // handle it
  });
로그인 후 복사

리팩토링된 코드의 이점:

  • 체인 유지: getTokens 함수에서 Promise를 반환하면 후속 작업을 쉽게 연결할 수 있습니다.
  • 제어 유지: 소비자 모듈은 콜백에 의존하지 않고 비동기 작업의 실행을 제어합니다.
  • 코드 단순화: 리팩토링된 코드는 비동기식 처리 프로세스를 사용하여 이해하고 유지 관리하기가 더 쉽습니다.

위 내용은 Promise `.then` 메서드에서 콜백을 사용하는 것이 안티 패턴인 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿