JavaScript에서 'return promise' 대신 'return wait promise'를 선택하는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-18 07:57:02
원래의
186명이 탐색했습니다.

Why Choose `return await promise` over `return promise` in JavaScript?

JavaScript의 return promise와 return promise 비교: 동작 차이

소개

언제 JavaScript에서 비동기 코드로 작업할 때 개발자는 종종 async/await 메커니즘을 사용하여 Promise를 관리합니다. 그러나 비동기 함수에서 Promise를 반환할 때 고려해야 할 두 가지 변형이 있습니다: return wait promise 및 return promise. 이 기사에서는 이러한 접근 방식 간의 미묘한 차이를 자세히 살펴봅니다.

동작 차이

대부분의 경우 반환 대기 약속과 반환 약속 사이에는 눈에 띄는 차이가 없습니다. 둘 다 확인하거나 거부하는 Promise를 생성하여 동일한 관찰 가능한 동작을 제공합니다.

그러나 try-catch 블록을 사용하면 차이점이 분명해집니다. 다음 예를 고려해 보세요.

async function rejectionWithReturnAwait() {
  try {
    return await Promise.reject(new Error());
  } catch (e) {
    return 'Saved!';
  }
}
로그인 후 복사

이 경우 return wait는 거부된 Promise가 비동기 함수 내에서 포착되도록 보장하여 catch 절이 실행될 수 있도록 하고 "Saved!"로 확인되는 Promise를 반환합니다.

async function rejectionWithReturn() {
  try {
    return Promise.reject(new Error());
  } catch (e) {
    return 'Saved!';
  }
}
로그인 후 복사

반대로, return promise는 거부된 Promise를 비동기 함수 내에서 기다리지 않고 직접 반환합니다. 이는 거부가 catch 절에 의해 캡처되지 않고 대신 호출자가 거부를 수신함을 의미합니다.

의미

반환 대기 약속과 반환 약속 중 선택은 다음과 같습니다. 원하는 행동에 대해. 비동기 함수 내의 오류 처리가 중요한 경우 오류를 포착하고 그에 따라 처리하도록 보장하기 위해 return wait promise를 사용해야 합니다. 그렇지 않으면 return promise를 사용하여 불필요한 중첩을 피함으로써 성능을 최적화할 수 있습니다.

위 내용은 JavaScript에서 'return promise' 대신 'return wait promise'를 선택하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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