일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- React
- dfs
- tailwind
- 리터럴 타입
- RTK Query
- 공변성
- autosize
- 타입 좁히기
- async/await
- app router
- webpack
- Jest
- 태그된 유니온
- Cypress
- 호이스팅
- SSR
- 투포인터
- TS
- 인터섹션
- CI/CD
- useAppDispatch
- ESlint
- map
- 결정 알고리즘
- 무한 스크롤
- CORS
- recoil
- 반공변성
- 이분 검색
- Promise
Archives
- Today
- Total
짧은코딩
async와 await 본문
반응형
async 함수
async는 function 앞에 위치한다.
async function f() {
return 1;
}
f().then(alert); // 1
async를 붙이면 해당 함수는 항상 Promise를 반환한다. Promise가 아닌 값을 반환해도 이행상태의 Promise로 값을 감싸 이행된 Promise가 반환된다.
await
await는 async 함수 안에서만 동작한다.
async function f() {
let promise = new Promise((resolve, reject) => {
setTimeout(() => resolve("완료!"), 1000)
});
let result = await promise; // 프라미스가 이행될 때까지 기다림 (*)
alert(result); // "완료!"
}
f();
함수를 호출하고 함수 실행 도중에 await이 있는 줄에서 실행이 잠시 중단되었다가 Promise가 처리되면 실행이 재개된다.
await은 Promise가 처리될 때까지 함수 실행을 기다리게 만든다. 이렇게하면 Promise가 처기되는 동안 엔진이 다른 일(다른 스크립트를 실행, 이벤트 처리 등)을 할 수 있어서, CPU 리소스가 낭비되지 않는다.
await은 promise.then보다 좀 더 세련되게 result를 얻을 수 있도록 하는 문법이며 가독성도 더 좋다.
반응형
'JS' 카테고리의 다른 글
"forEach" vs "map" (0) | 2023.07.13 |
---|---|
얕은 복사와 깊은 복사 (0) | 2022.11.17 |
Promise (0) | 2022.06.03 |
자바스크립트-심볼형 (0) | 2022.05.15 |
자바스크립트-옵셔널 체이닝 '?.' (0) | 2022.05.14 |
Comments