1. 왜 씁니까?
- promise를 조금 더 깔끔하고 더 동기적으로 보이게끔 만든다.
- 콜백 함수나 promise가 너무 많으면 코드를 읽기 너무 힘들다. 그저 promise에 요소를 조금 더 해서 사용하는 'syntactic sugar'이 된다!
2. 어떻게 사용하나요?
//! promise Ver.
function findUser() {
return new Promise((resolve, reject) => {
// 뭔가 통신을 한다던지 지연이 일어난다.
resolve('Hendrix');
});
}
const user = findUser();
user.then(console.log);
console.log(user)
//! async Ver.
async function findUser() {
// 뭔가 통신을 한다던지 지연이 일어난다.
return 'Hendrix';
}
const user = findUser();
user.then(console.log);
console.log(user)
- 물론 둘의 결과는 똑같다. 그저 promise를 줄여서 async로 퉁 친 것이다. 하지만 가끔은 promise가 필요할 때가 있다. 마치 for... 과 while처럼 말이다.
function delay(el) {
return new Promise(resolve => setTimeout(resolve, el));
}
async function beatIt() {
await delay(1000);
return 'Oh No...Help';
}
async function defense() {
await delay(2000);
return 'Miss!';
}
- await은 setTimeout에 의해 소괄호에 적힌 시간에 맞게 기다렸다가 리턴하게 된다.
- 이외에 promise.all이나 then으로 연결할 수 있는 부분은 다른 포스팅에서 정리하는 것이 좋을 것 같다.
'Coding > Today I Learned' 카테고리의 다른 글
2021.07.30(Fri.) <REST API> (0) | 2021.07.30 |
---|---|
2021.07.29(Thu.) <HTTP와 네트워크 기초중에 기초> (0) | 2021.07.29 |
2021.07.27(Tue.) <Promise> (0) | 2021.07.27 |
2021.07.26(Mon.) <동기 비동기의 간단한 설명> (0) | 2021.07.27 |
2021.07.24(Sat.) <Graph 형태의 자료구조> (0) | 2021.07.25 |