약속 체인에 '.then(function(a){ return a; })'가 필요합니까?
Nov 16, 2024 am 12:08 AM프라미스 연결: ".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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









