기존의 비동기 코드는
콜백 함수나 Promise 체인 사용 등으로 인해
코드가 중첩되고 복잡해질 수 있다
이러한 코드는 "콜백 지옥"이라고 불리며
오류 처리와 순서 제어를 관리하기 어렵기 때문에
async 및 await을 사용해
비동기 작업을 동기적인 코드처럼 보이게 한다
async
🔹 async 함수는 항상 프라미스를 반환한다
🔹 비동기 작업을 보다 쉽게 다루기 위한 도구
await
🔹await 키워드는 해당 비동기 작업이 완료될 때까지 실행을 일시 중지하고 그 후 결과를 반환하므로 코드가 순차적으로 실행되어 동기적으로 보이게 한다
(async 함수의 실행을 일시 중지하고 전달 된 Promise의 해결을 기다린 다음 async 함수의 실행을 다시 시작하고 완료후 값을 반환)
🔹 await 키워드는 async 함수에서만 유효하다
🔗Promise 체인을 사용한 비동기 코드
getData()
.then(result1 => {
return processData(result1);
})
.then(result2 => {
return displayData(result2);
})
.catch(error => {
console.error(error);
});
🔗 async와 await를 사용한 코드
async function main() {
try {
const result1 = await getData();
const result2 = await processData(result1);
const result3 = await displayData(result2);
} catch (error) {
console.error(error);
}
}
main();
'✍️ 스파르타 TIL' 카테고리의 다른 글
[TIL] sparta 20일차 - 리액트 state, 불변성 (0) | 2023.11.01 |
---|---|
[TIL] sparta 19일차 - 리액트(React), 컴포넌트, JSX (0) | 2023.10.31 |
인수를 허용하는 위치 매개 변수를 찾을 수 없습니다. 해결방법 (0) | 2023.10.28 |
[TIL] sparta 17일차 - 모듈(module) (0) | 2023.10.27 |
[TIL] sparta 16일차 - CSS 변수(커스텀 속성) 사용하기 (0) | 2023.10.26 |