문제
콜백함수는 동기적으로 한번 함수가 실행되고 끝나는 동기적 방식과 달리 함수 인자에 함수 값을 넣음으로써 함수를 여러번 호출할 수 있는 장점이 있다.(비동기적이라는 의미)
첫 번째: 콜백함수 이해하기
콜백함수 여러 함수를 여러번 호출할 수 있다.
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 |