비동기 함수는 값이 아닌 약속을 반환합니다.
P粉464208937
P粉464208937 2023-10-19 18:54:01
0
2
395

Promise에서 async/await가 어떻게 작동하는지 이해하려고 노력 중입니다.

으아악

내가 이해한 바에 따르면, Wait는 차단되어야 하는데 위 코드에서는 기본 요소의 사용을 차단하는 것 같습니다timestamp返回对象bl. 그런 다음 내 함수는 원래 값을 반환하지만 시간 변수는 원래 값 대신 보류 중인 약속으로 설정됩니다. 내가 놓친 게 무엇입니까?

P粉464208937
P粉464208937

모든 응답 (2)
P粉099985373

비동기 접두사는 약속의 래퍼입니다.

으아악

과 동일 으아악
    P粉002023326

    async函数始终返回一个 Promise。这就是它报告异步工作完成情况的方式。如果您在另一个async函数中使用它,则可以使用await来等待其promise解决,但在非async함수(일반적으로 최상위 수준 또는 이벤트 핸들러)에서는 Promise를 직접 사용해야 합니다. 예:

    으아악

    ...그러나 JavaScript 모듈의 최상위 수준에서 이 작업을 수행하면 이제 모든 최신 환경에서최상위 모듈await을 지원합니다.

    으아악

    (이 Promise가 거부되면 모듈이 로드되지 않습니다. Promise가 실패하더라도 모듈이 의미 있게 작동하는 경우 Promise 거부를 처리하기 위해try/catch 中로 래핑해야 합니다.)


    그것은명시적인 Promise 콜백 용어의 형태로 무언가를공개할 수도 있고 공개하지 않을 수도 있으며, 이는 JavaScript 엔진이 내부적으로async함수를 처리하는 방법에 대한 아이디어를 제공합니다.

    으아악

    몇 가지 중요한 참고 사항:

    • 이를new Promise的函数(promise 执行器函数)由new Promise동기 호출에 전달합니다.
      • 이것이 작업이 시작되는 이유이며, 작업을 시작하기 위한 동기 호출web3.eth.getBlock입니다.
    • Promise 실행자에서 발생하는 모든 오류(등)는new Promise포착되어 Promise 거부로 변환됩니다.
    • Promise 콜백에서 발생하는 모든 오류(예: 전달하는then오류)가 포착되어 거부로 변환됩니다.
      최신 다운로드
      더>
      웹 효과
      웹사이트 소스 코드
      웹사이트 자료
      프론트엔드 템플릿
      회사 소개 부인 성명 Sitemap
      PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!