> 웹 프론트엔드 > JS 튜토리얼 > JavaScript의 최상위 수준에서 비동기 코드를 올바르게 실행하려면 어떻게 해야 합니까?

JavaScript의 최상위 수준에서 비동기 코드를 올바르게 실행하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-12-13 06:44:19
원래의
216명이 탐색했습니다.

How Do I Properly Execute Asynchronous Code at the Top Level in JavaScript?

비동기 코드의 최상위 실행

비동기 프로그래밍에서 async/await 기능을 사용하면 동기 작업과 비동기 작업 간을 원활하게 전환할 수 있습니다. 그러나 최상위 수준에서 비동기 코드를 실행할 때는 특정 사항을 고려해야 합니다.

설명

비동기 함수를 정의하면 Promise가 반환됩니다. 최상위 수준에서 이 함수를 호출하면 해결된 값이 아닌 Promise가 즉시 반환됩니다. 이것이 콘솔이 비동기 작업을 실행하기 전에 Promise 개체를 출력하는 이유입니다.

해결책

이 문제를 해결하려면 다음과 같은 몇 가지 옵션이 있습니다.

1. 최상위 Await(ES2022 제안)

최신 환경에서는 모듈에서 최상위 Await를 사용할 수 있습니다. 이를 통해 모듈 범위에서 직접 Promise를 기다릴 수 있습니다.

const text = await main();
console.log(text); // Logs the resolved value
로그인 후 복사

2. 처리되지 않은 거부가 포함된 최상위 비동기 함수

거부하지 않는 최상위 비동기 함수를 정의할 수 있습니다. 이는 처리되지 않은 거부 오류를 방지하지만 오류를 명시적으로 처리하지는 않습니다.

(async () => {
  try {
    const text = await main();
    console.log(text); // Logs the resolved value
  } catch (e) {
    // Error handling (optional)
  }
})();
로그인 후 복사

3. then() 및 catch()

위 옵션 중 어느 것도 적합하지 않은 경우 Promise의 then() 및 catch() 메서드를 사용하여 결과를 처리할 수 있습니다.

main()
  .then((text) => {
    console.log(text); // Logs the resolved value
  })
  .catch((err) => {
    // Error handling
  });
로그인 후 복사

참고: 모든 경우에 처리되지 않은 거부 오류를 방지하려면 거부를 올바르게 처리하는 것이 중요합니다.

위 내용은 JavaScript의 최상위 수준에서 비동기 코드를 올바르게 실행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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