> 웹 프론트엔드 > JS 튜토리얼 > 비동기 함수가 JavaScript에서 항상 Promise를 반환하는 이유는 무엇입니까?

비동기 함수가 JavaScript에서 항상 Promise를 반환하는 이유는 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-14 01:13:09
원래의
127명이 탐색했습니다.

Why Do Async Functions Always Return Promises in JavaScript?

값 대신 Promise를 반환하는 비동기 함수

async/await 프로그래밍에서 비동기 함수는 항상 Promise를 반환합니다. 이 약속은 함수의 비동기 작업의 최종 완료를 나타냅니다.

다른 비동기 컨텍스트에서 비동기 함수를 호출할 때 약속이 확정될 때까지 대기를 활용하여 일시 중지할 수 있습니다. 그러나 비동기가 아닌 컨텍스트(종종 최상위 수준 또는 이벤트 핸들러)에서는 다음 Promise를 직접 사용해야 합니다.

latestTime()
.then(time => {
  console.log(time);
})
.catch(error => {
  // Handle/report error
});
로그인 후 복사

최신 환경에서는 최상위 수준 Wait가 모듈 내에서 지원됩니다.

const time = await latestTime();
로그인 후 복사

더 잘 이해하기 위해 비동기 함수의 명시적인 Promise 콜백 버전을 살펴보겠습니다.

function latestTime() {
  return new Promise((resolve, reject) => {
    web3.eth.getBlock('latest')
      .then(bl => {
        console.log(bl.timestamp);
        console.log(typeof bl.timestamp.then == 'function');
        resolve(bl.timestamp);
      })
      .catch(reject);
  });
}
로그인 후 복사

여기서 콜백 버전:

  • promise 실행기 함수(새 Promise로 전달됨)가 동기식으로 실행되어 web3.eth.getBlock 작업을 시작합니다.
  • Promise 실행기 또는 콜백 내의 모든 오류가 포착됩니다. 약속 거부로 전환됩니다.

위 내용은 비동기 함수가 JavaScript에서 항상 Promise를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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