Promise 개체는 비동기 작업의 최종 완료(또는 실패)와 결과 값을 나타냅니다. 비동기 대기 함수 및 연산자는 약속에서 작동합니다.
Async/await 함수는 백그라운드에서 비동기 작업을 수행하면서 완전히 동기적으로 보이는 코드를 작성하는 데 도움이 됩니다.
예를 들어, 약속을 반환하는 비동기 함수가 있다고 가정해 보겠습니다.
// Promise that resolves to 100 after 2sec function getHundred() { return new Promise(resolve => { setTimeout(() => { resolve(100); }, 2000); }); }
이것을 함수에서 사용하고 싶지만 반환 값을 기다려야 합니다. 콜백을 사용하면 다음과 같이 할 수 있습니다. -
function useGetHundred() { getHundred().then((value) => { console.log(value); }) }
그러나 반환된 데이터에서 실행할 콜백을 불필요하게 생성해야 합니다. 대신 async await를 사용하여 이 코드를 단순화할 수 있습니다. −
예시
// Declare an async function. When this function is called, it'll also return a Promise // But inside this function any async calls can be made synchronous using await keyword async function useGetHundredAsync() { // wait for the getHundred promise to resolve then store its value in value. let value = await getHundred(); console.log(value) }
출력
100