능글맞은 구렁이
JavaScript - Async & Await 본문
CallBack Hell(콜백 지옥)
콜백 지옥은 JavaScript를 이용한 비동기 프로그래밍시 발생하는 문제로서, 함수의 매개 변수로 넘겨지는 콜백 함수가 반복되어 코드의 들여쓰기 수준이 감당하기 힘들 정도로 깊어지는 현상을 말한다.
timer(1000, function(){
console.log('작업');
timer(1000,function(){
console.log('작업');
timer(1000,function(){
console.log('작업');
timer(1000,function(){
console.log('작업');
.......
});
});
});
});
1. Promise 를 활용해 콜백지옥 탈출
timer(1000)
.then(function(){
console.log('작업');
return timer(1000);
})
.then(function(){
console.log('작업');
return timer(1000);
})
.then(function(){
console.log('작업');
})
2. Async 와 Await의 활용해 콜백지옥 탈출
- await : 기다려~ 라는 의미의 함수로, 사용전 유의할 사항은 await은 함수안에 있을때 사용이 가능하다.
- async : await을 사용하기위한 함수로 async가 await이 사용이 가능하다.
function timer(time){
return new Promise(function(resolve){
setTimeout(function(){resolve(time)}, time);
});
}
async function run(){
console.log('start');
var time = await timer(1000);
console.log('time', time);
time = await timer(time+1000);
console.log('time', time);
time = await timer(time+1000);
console.log('time', time);
console.log('end');
return time;
}
async function run2(){
console.log('parent start');
var time = await run();
console.log('time', time);
console.log('parent end');
}
console.log('parent parent start');
run2().then(function(){
console.log('parent parent end');
});
'JS > JavaScript' 카테고리의 다른 글
JavaScript - Promise (0) | 2023.07.12 |
---|---|
JavaScript - CallBack함수 (1) | 2023.07.09 |
JavaScript - 키보드 키코드 값 (0) | 2022.05.11 |
javaScript -모달 (0) | 2022.01.17 |
javaScript_div안에 div추가 (0) | 2021.07.20 |
Comments