Language/JavaScript
[Javascript/자바스크립트] Day5 - async와 await
코코월드주인장
2023. 1. 26. 18:12
async와 await의 문법을 사용하면 프라미스를 좀 더 편하고, 가독성있게 코드를 관리할 수 있다.
1. async 함수
async function f() {
return 1;
}
async function f() {
retrurn 1;
}
f().then(alert); // 1
async function() {
return Promise.resolve(1);
}
f().then(alert); // 1
2. await
: 일반 함수엔 await를 사용할 수 없다
let value = await promise;
async function f() {
let promise = new Promise((resolve, reject) => {
setTimeout(() => resolve('완료'), 1000)
});
let result = await promise; // 프라미스가 이행될 때까지 기다림
alert(result); // '완료'
}
f();
3. 정리
- async/await와 promise.then/catch
async와 await를 사용하면 await가 대기를 처리해주기 때문에 .then이 거의 필요하지 않다. 여기에 .catch 대신 일반 try..catch를 사용할 수 있다는 장점도 생긴다. 따라서 보통 async/await를 사용하는 것이 더 편하다
그치만 문법적인 제약 때문에 async함수 바깥의 최상위 레벨 코드에선 await를 사용할 수 없어서 그때엔 .then/catch를 사용해 최종 결과나 에러를 다룬다.
- function 앞에 async 키워드를 추가하면, 그 함수는 언제나 프라미스를 반환하고, 함수안에서 await를 사용할 수 있다
- 프라미스 앞에 await 키워드를 붙이면 자바스크립트는 프라미스가 처리될 때까지 대기한다
async/await 를 알기 위해선 그 전에 promise를 알아두면 편해요!
[Javascript/자바스크립트] Day5 - 프라미스(Promise)와 체이닝(chaining), 프라미스 API
1. 프라미스(Promise) :자바스크립트 안에 내장되어있는 오브젝트. 비동기 처리를 위해 쓰이며, 콜백함수 대신에 쓸 수 있다. 1.State : pending -> operation이 수행중일 경우, fulfilled : operation을 완료하였
cocoworld.tistory.com