*async function
선언은 AsyncFunction
객체를 반환하는 하나의 비동기 함수를 정의합니다.*
비동기 함수는 이벤트 루프를 통해 비동기적으로 작동하는 함수로, 암시적으로 Promise
를 사용하여 결과를 반환합니다. 그러나 비동기 함수를 사용하는 코드의 구문과 구조는, 표준 동기 함수를 사용하는것과 많이 비슷합니다.
ex)
function resolveAfter2Seconds() {
return new Promise(resolve => {
setTimeout(() => {
resolve('resolved');
}, 2000);
});
}
async function asyncCall() {
console.log('calling');
const result = await resolveAfter2Seconds();
console.log(result);
// Expected output: "resolved"
}
asyncCall();
async
함수에는 await
식이 포함될 수 있습니다. 이 식은 async
함수의 실행을 일시 중지하고 전달 된 Promise
의 해결을 기다린 다음 async
함수의 실행을 다시 시작하고 완료후 값을 반환합니다.
ex)
async function foo(){
return 1
)
===
function foo(){
return Promise.resolve(1)
)