> 웹 프론트엔드 > JS 튜토리얼 > Async/Await 함수가 항상 Promise를 반환하는 이유는 무엇입니까?

Async/Await 함수가 항상 Promise를 반환하는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-29 04:48:17
원래의
495명이 탐색했습니다.

Why Do Async/Await Functions Always Return a Promise?

async/await가 항상 Promise를 반환하는 이유는 무엇인가요?

async/await 기능을 사용하는 것은 처음에는 당황스러울 수 있습니다. 특히 다음과 같은 경우에는 더욱 그렇습니다. 비동기 함수에서 반환된 Promise를 처리합니다. 제공된 코드에서 강조된 동작을 자세히 살펴보겠습니다.

<br>const getJSON = async () => {<br> const 요청 = () => new Promise((해결, 거부) => (</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">setTimeout(() => resolve({ foo: 'bar'}), 2000)
로그인 후 복사

));

const json = wait request();
return json;
}

getJSON()을 실행하면 함수가 약속의 대상. 이는 모든 비동기 함수가 내부적으로 Promise를 반환하기 때문에 발생합니다. Wait 키워드는 이 Promise에 대해 작동하여 Promise가 해결되거나 거부될 때까지 함수 실행을 일시 중단합니다.

이 예에서 Wait는 request()가 해결될 때까지 기다립니다. 그러나 Promise를 자동으로 풀지는 않습니다. 제공된 코드에서 볼 수 있듯이, wait 또는 .then()을 사용하여 반환된 Promise를 명시적으로 처리해야 합니다.

.then() 사용:

<br>getJSON ().then(json => console.log(json)); // prints { foo: 'bar' }<br>

Promise가 결과를 확인하고 json 매개변수로 전달할 때 콜백 함수를 호출합니다. 이 접근 방식을 사용하면 콜백 내에서 확인된 값에 액세스할 수 있습니다.

반면에 console.log(getJSON())를 사용하여 비동기 함수의 결과를 직접 기록하면 포장이 풀리지 않기 때문에 Promise 객체가 반환됩니다. 약속. Promise 모델을 사용하면 Promise 자체 내에서 또는 .then()과 같은 명시적인 언래핑 메서드를 사용하여 Promise 결과에만 액세스할 수 있습니다.

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

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