자바스크립트는 동기적처리가 베이스다
그런데, 상황에 따라서는 비동기적처리를 한다
순차적으로 가다가 오래걸리는 코드는 일단 치워두고, 쉬운 코드 먼저 실행한다음, 그제서야 실행한다
<script>
console.log(1);
setTimeout(function(){console.log(2)},1000);
console.log (3);
</script>
// 1
// 3
//(1초뒤) 2
함수를 순차적으로 실행하고 싶다면?
콜백함수를 사용한다 즉, 함수 안에 함수를 넣는다
<콜백함수 디자인 하는법>
<script>
function 첫째함수(구멍){
console.log(1);
구멍();
}
function 둘째함수(){
console.log(2);
}
//첫째함수();
//둘째함수(); 이런식으로 실행한다면 순차적으로 실행이 안될수도 있음.
//예를 들어 첫째함수 안에 setTimeout이 있다던가...
첫째함수(둘째함수); //=> 차례로 출력, 좀더안전
</script>
→ 참고로, 콜백함수는 비동기,동기라고 나누지 말자. 그냥 순차적으로 출력하는, 함수디자인 패턴일뿐...
콜백함수의 문제점
첫째함수(function(){
둘째함수(function(){
셋째함수(function(){
넷째함수(function(){
});
});
});
});
겹겹이 쌓여서 보기싫음
해결방법은 프로미스!
첫째함수().then(function(){
}).then(function(){
}).then(function(){
}).then(function(){...
'Javascript' 카테고리의 다른 글
async 함수 안에서 쓰는 await (0) | 2023.03.18 |
---|---|
Promise(=성공/실패 판정기계) (0) | 2023.03.18 |
Beesbeesbees 과제풀이 (2) | 2023.03.16 |
'__proto__' (=유전자 검사, 내 뿌리를 찾고 싶다면?) (0) | 2023.03.15 |
prototype (= 부모유전자, 물려받아 쓸 수 있음) (0) | 2023.03.15 |