문제
콜백함수는 동기적으로 한번 함수가 실행되고 끝나는 동기적 방식과 달리 함수 인자에 함수 값을 넣음으로써 함수를 여러번 호출할 수 있는 장점이 있다.(비동기적이라는 의미)
첫 번째: 콜백함수 이해하기
콜백함수 여러 함수를 여러번 호출할 수 있다.
function show(a,callback){
console.log(a)
callback(a)
a++
console.log(a)
}
function minus(a){
a--
console.log(a)
}
show(1,minus)
결과
1,0,2
두 번째: 콜백함수 이해하기 2
//타입이 문자면 에러 메세지 보내줘
function show(a,callback){
callback(a)
console.log("이제 함수를 종료합니다")
}
function checkString(a){
if(typeof a === 'string'){
console.log("error")
}else{
console.log("맞는 인자입니다")
}
}
show(3,checkString)
show("가",checkString)
결과
맞는 인자입니다
이제 함수를 종료합니다
error
이제 함수를 종료합니다
세 번째 함수 실행: 콜백지옥
문제 : 커피 목록에 커피 이름 계속적으로 추가
새로운 변수에 계속적으로 새로운 콜백함수들을 추가 ( 처음 함수가 종료되지 않아도 계속적으로 다른 함수들을 요청할 수 있음)
만약 서버에 데이터를 요청하는 함수를 만들면 비동기적으로 처리해야 좋다. 왜냐하면 처음 요청이 뻑날 경우 다음 요청이 진행이 안될 수 있기 때문이다.
//콜백 지옥
// 커피 이름을 전달하고 목록에 이름을 추가하기
setTimeout((name) => {
let coffeeList= name
console.log(coffeeList)
setTimeout((name) => {
coffeeList +=`, ${name}`
console.log(coffeeList)
setTimeout((name) => {
coffeeList +=`, ${name}`
console.log(coffeeList)
}, 500,'latte');
}, 500,'coffee');
}, 500,'espresso');
'Javascript' 카테고리의 다른 글
버튼 클릭했을 때 화면을 보여주거나 가리기 (0) | 2021.10.27 |
---|---|
JS 지저분한 코드 깨끗하게 바꾸는 팁!! (0) | 2021.10.26 |
callback함수를 적용해보기! (0) | 2021.10.20 |
JS function 코딩하면서 이해하기 (0) | 2021.10.20 |
자바스크립트 동작원리 with callback function (0) | 2021.10.19 |