>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 비동기 함수와 약속은 어떻게 함께 작동합니까?

JavaScript에서 비동기 함수와 약속은 어떻게 함께 작동합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-22 20:15:17926검색

How Do Async Functions and Promises Work Together in JavaScript?

비동기 함수 및 약속

비동기 작업을 수행할 때는 비동기 함수와 약속이 상호 작용하는 방식을 이해하는 것이 중요합니다.

비동기 함수는 항상 반환됩니다. 약속

일반 함수와 달리 비동기 함수는 항상 비동기 작업의 완료를 나타내는 약속을 반환합니다. 이렇게 하면 순차 코드에서 비동기 작업을 더 간단하게 처리할 수 있습니다.

예:

async function latestTime() {
  const bl = await web3.eth.getBlock('latest');
  return bl.timestamp;
}

원시 값과 약속 반환

함수가 기본 값(bl.timestamp)을 반환하더라도 최신 시간() 함수 자체는 약속을 반환합니다. 이로 인해 반환 값에 액세스하려고 할 때 혼란이 발생할 수 있습니다.

Promise 사용

반환된 Promise의 해결된 값에 액세스하려면 then( ) 방법:

latestTime().then((time) => {
  console.log(time);
});

또는 최신 JavaScript 환경에서는 최상위 수준을 사용할 수 있습니다. wait:

const time = await latestTime();
console.log(time);

명시적 약속 처리

명확성을 위해 다음은 약속 콜백 측면에서 비동기 함수가 작동하는 방식을 보다 명시적으로 표현한 것입니다.

function latestTime() {
    return new Promise((resolve, reject) => {
        web3.eth.getBlock('latest').then((bl) => {
            resolve(bl.timestamp);
        })
    });
}

위 내용은 JavaScript에서 비동기 함수와 약속은 어떻게 함께 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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