>웹 프론트엔드 >JS 튜토리얼 >약속 체인에 '.then(function(a){ return a; })'가 필요합니까?

약속 체인에 '.then(function(a){ return a; })'가 필요합니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-16 00:08:02567검색

Is

프라미스 연결: ".then(function(a){ return a; })" 이해

프로미스 체인으로 작업할 때 다음과 같습니다. ".then(function(a){ return a; })"와 같은 문을 접하는 것이 일반적입니다. 다음 구문은 코드에 나타납니다.

var getEvents = function(participantId) {  
  return new models.Participant()
    .query({where: {id: participantId}})
    .fetch({withRelated: ['events'], require: true})
    .then(function(model) {
      return model;
    });
};

질문이 생깁니다. 이 함수는 추가 ".then()" 없이 fetch()를 직접 반환하는 것과 기능적으로 동일합니까?

답변: 무작동

예. ".then(function(a){ return a; })"는 사실상 promise에 대한 무작동(no-op)입니다. 동일한 Promise를 반환하고 동일한 방식으로 작동하며 동일하게 호출할 수 있습니다.

추론:

Promise는 비동기 작업을 나타내는 데 사용됩니다. Promise가 해결되면 "then" 함수를 통해 그 결과를 체인의 다음 Promise로 전달합니다. 그러나 "then" 함수가 단순히 입력을 반환할 때는 체인에 어떤 값도 추가하지 않습니다.

저자가 이 기능을 사용한 이유:

중복되어 보이는 ".then()"이 포함된 이유는 다음 중 하나 때문일 수 있습니다. 이유:

  • 실수: 작성자가 단순히 실수를 했을 수도 있고 약속의 목적을 오해했을 수도 있습니다.
  • 이해 부족: 작성자는 모든 약속에 "then" 기능이 필요하지 않더라도 "then" 기능이 필요하다고 잘못 믿었을 수 있습니다. 무엇이든.

결론:

대부분의 경우 ".then(function(a){ return a; })"는 불필요하며 원하는 동작에 영향을 주지 않고 생략되었습니다. 아무 목적도 없는 자리 표시자이므로 코드 명확성을 높이기 위해 제거해야 합니다.

위 내용은 약속 체인에 '.then(function(a){ return a; })'가 필요합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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