>웹 프론트엔드 >JS 튜토리얼 >Promise .then 메소드를 사용한 콜백이 왜 나쁜 생각인가요?

Promise .then 메소드를 사용한 콜백이 왜 나쁜 생각인가요?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-16 09:03:02769검색

Why are Callbacks with Promise .then Methods a Bad Idea?

Promise .then 메서드와 함께 콜백을 사용할 때의 불미스러운 결과

비동기 작업 관리를 위한 보다 최적의 접근 방식을 찾던 개발자는 다음과 같은 제안을 우연히 발견할 수 있습니다. AngularJS 서비스 내에서 콜백 함수 사용. 그러나 이러한 관행은 바람직하지 않은 결과를 초래할 수 있으므로 면밀한 조사가 필요합니다.

제공된 코드 조각에서 tokenService는 getTokens 메소드 내의 콜백을 사용하여 HTTP 요청 결과를 처리합니다. 그러나 이 접근 방식에는 몇 가지 단점이 있습니다.

  • 깨진 흐름: 성공 및 실패 핸들러의 원활한 연결을 방해합니다.
  • 제어 반전: 응답 처리 제어를 호출자에서 호출된 모듈로 전환하여 잠재적으로 다음과 같은 문제가 발생할 수 있습니다. 혼란.
  • 일관되지 않은 약속: 코드에 약속이 포함되어 있지만 콜백은 여전히 ​​응답 처리에 사용되어 인지 부조화를 일으킵니다.

Promise를 위한 리팩토링 -지향적 취급

이 문제를 해결하려면, Promise의 비동기적 특성을 완전히 수용하도록 코드를 다시 디자인해야 합니다. 수정된 버전에서 getTokens 메소드는 호출자가 자체 then 메소드 내에서 활용할 수 있는 약속을 반환합니다.

var getTokens = function() {
  return $http.get('/api/tokens');
};
yourModule.getTokens()
  .then(function(response) {
    // handle it
  });

약속 중심 설계의 이점

이 접근 방식은 콜백 기반 접근 방식에 비해 많은 이점을 제공합니다. 방법:

  • 향상된 흐름: 작업을 더욱 효과적으로 연결하여 논리적이고 효율적인 실행 흐름을 보장할 수 있습니다.
  • 명확성: 응답 처리에 대한 책임은 호출자에게 있으므로 모호함.
  • 일관성: Promise는 코드베이스 전반에 걸쳐 일관되게 사용되므로 이해와 유지 관리가 용이합니다.

Promise .then 메소드와 함께 콜백을 사용할 때의 단점을 이해함으로써 보다 약속 지향적인 접근 방식을 채택하면 개발자는 비동기 코드 처리 방식을 크게 개선할 수 있습니다. 이를 통해 개발자 경험을 향상하고 유지 관리가 용이하며 버그 없는 코드베이스를 촉진하는 더 명확하고 관리하기 쉬운 코드가 탄생합니다.

위 내용은 Promise .then 메소드를 사용한 콜백이 왜 나쁜 생각인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.