>  기사  >  웹 프론트엔드  >  ".then(function(a){ return a; })"는 실제로 Promise를 위해 어떤 작업을 수행합니까?

".then(function(a){ return a; })"는 실제로 Promise를 위해 어떤 작업을 수행합니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-10 14:58:03536검색

Does

".then(function(a){ return a; })"가 Promise에 영향을 미치나요?

Bookshelf에서 Bluebird Promise를 사용할 때 개발자는 종종 아래와 유사한 패턴을 사용합니다.

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

그러나 이 코드는 Promise에 익숙하지 않은 사람들에게 질문을 제기합니다. then 함수가 코드의 전반적인 동작에 의미 있는 영향을 미치나요? 다음 구현이 이를 사용하지 않고도 동일한 결과를 얻을 수 있습니까?

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

미스터리 해결

문제의 핵심은 그때 전달된 함수 매개변수에 있습니다. 이 인수는 체인에서 이전 Promise의 반환 값을 받을 것으로 예상됩니다. 따라서 a; then 함수 내의 문은 수신된 인수를 변경 없이 통과할 뿐이므로 기본적으로 아무 작업도 수행하지 않습니다.

Then()을 유지하는 이유는 무엇입니까?

외견상 중복에도 불구하고 then 함수는 다음과 같은 역할을 합니다. 특정 사용 사례의 목적. 한 가지 예는 반환된 Promise가 체인 아래에서 다르게 처리되어야 하는 경우입니다. 예를 들어, 기록하거나 JSON으로 변환하거나 사용자 지정 방식으로 처리할 수 있습니다. 또 다른 장점은 then 함수를 사용하면 오류 처리가 가능하다는 것입니다. 그러나 이는 사용된 Promise 라이브러리에 따라 done을 통해서도 달성할 수 있습니다.

모범 사례

일반적으로 다음만 수행하는 것이 좋습니다. 정말로 필요할 때 사용하세요. 불필요한 함수는 코드베이스에 불필요한 복잡성을 추가하고 오류 가능성을 높일 수 있습니다. 일반적으로, 반환된 프로미스의 결과나 오류를 명시적으로 수정하거나 처리해야 하는 경우에만 then을 통합하세요.

위 내용은 ".then(function(a){ return a; })"는 실제로 Promise를 위해 어떤 작업을 수행합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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