지토의 개발일기/React
[React] async / await
지아토
2021. 9. 9. 17:18
▶ async와 await이란?
Prosmise를 쉽고 효율적으로 사용 가능하게 만들어 주는 ES8의 문법이다.
async 함수에는 await식이 포함될 수 있고, 이 식은 async 함수의 실행을 일시 중지하고 전달 된 Promise의 해결을 기다린 다음 async 함수의 실행을 다시 시작하고 완료후 값을 반환하는 구조입니다.
▶사용 방법.
이 문법을 사용하려면 함수의 앞부분에 async를 쓰고 , 해당 함수 내부에 Promise 앞부분에 await 키워드를 사용하면 된다.
작성을 하면 Promise가 끝날 때 까지 기다리고 결과값을 변수에 담을 수 있다.
▶ 예시
function increase(number) {
const promise = new Promise((success, fail) => {
//success는 성공 fail을 실패
setTimeout(() => {
const add1 = number + 5;
if (add1 > 30) {
const error = new Error("숫자가 너무 큼당");
return fail(error);
}
success(add1);
}, 2000);
});
return promise;
}
async function runApp() {
try {
// try /cat구문을 통해 에러 처리}
let add1 = await increase(0);
console.log(add1);
add1 = await increase(add1);
console.log(add1);
add1 = await increase(add1);
console.log(add1);
add1 = await increase(add1);
console.log(add1);
add1 = await increase(add1);
console.log(add1);
add1 = await increase(add1);
console.log(add1);
} catch (error) {
console.log(error);
}
}
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/async_function
async function - JavaScript | MDN
async function 선언은 AsyncFunction객체를 반환하는 하나의 비동기 함수를 정의합니다. 비동기 함수는 이벤트 루프를 통해 비동기적으로 작동하는 함수로, 암시적으로 Promise를 사용하여 결과를 반환
developer.mozilla.org
좀 더 구체적인 내용은 위에서 확인해보도록 하자