코드에서 getJSON 함수는 async/await 구문을 사용하는 비동기 함수입니다. 질문에 정확하게 나와 있듯이 모든 비동기 함수는 Promise 객체를 반환합니다. 그런 다음 Wait 연산자를 사용하여 Promise가 해결되거나 거부될 때까지 함수 실행을 일시 중지합니다.
그러나 console.log(getJSON())를 사용하여 비동기 함수의 결과를 직접 기록할 수는 없습니다. 이는 Wait가 함수 실행의 일시중단을 해제하고 Promise가 결과를 해결할 수 있도록 허용하기 때문입니다. 그러나 함수 자체는 여전히 래핑 해제된 결과가 아닌 기본 Promise를 반환합니다.
Promise의 결과에 액세스하려면 앞에서 설명한 것처럼 then() 메서드를 사용하거나 다른 메서드 내에서 다시 Wait를 사용해야 합니다. 비동기 기능. 귀하의 경우 getJSON().then(json => console.log(json))은 getJSON이 반환한 Promise에 then 핸들러를 연결하므로 결과 { foo: 'bar' }를 기록합니다.
답변에서 언급했듯이 이 동작은 Promise 모델의 기본입니다. 약속은 미래의 불특정 시간에 해결될 수 있는 비동기 작업을 나타냅니다. then() 메서드를 사용하면 Promise가 해결될 때 어떤 작업을 수행해야 하는지 지정할 수 있습니다.
Await를 사용하는 경우에도 비동기 함수가 항상 Promise를 반환한다는 점을 이해하면 애플리케이션에서 비동기 코드를 올바르게 처리하고 사용할 수 있습니다. .
위 내용은 내 Async/Await 함수가 여전히 Promise를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!