프로미스와 에이싱크 어웨잇을 학습 중입니다.
async function load() {
for (var i = 0; i < 3; i++) {
console.log(i);
await timer(1000);
}
console.log("end");
}
async function timer(ms) {
return setTimeout(() => {}, ms);
}
load();
라는 함수를 실행시키면 제 예상은 1초마다 숫자가 찍히는줄 알았지만 한번에 숫자가 나옵니다.
timer 함수를
const timer = (ms) => new Promise((res) => setTimeout(res, ms));
로 바꾸면 정상작동합니다.
그렇다면
const timer = (ms) => new Promise((res) => setTimeout(res, ms)); 와
async function timer(ms) {
return setTimeout(() => {}, ms);
}
가 서로 다르다는 거 같습니다.
뭐가 문젠가요?
async에서 return하면 resolve로 들어가는거 아닌가요?
글 읽어주셔서 감사합니다