CallBack function

낭만개발자·2021년 6월 6일
0

JavaScript

목록 보기
2/14

맨날 callback func 이 잘 알고 있다 생각해도 헷갈려서 다시 한번 정리그림 설명이 더 잘나옴

https://todaycode.tistory.com/24
예) 메인작가가 일이 넘 많음. 그래서 보조작가가 도와주러 옴. 보조작가에게 다른 일을 시켜두고 메인작가는 일함(비동기). 일 다 끝나면 말하라고 메인작가가 말함 (콜백함수 설정)

쉽게 말하면 첫번째 출처 블로그 처럼
1. 다른 함수에 파라미터로 정의된 함수
2. 다른 이벤트에 의해 연이어 호출되는 함수

인데
좀더 근본적이고 쉽게 말하자면
두번째 출처에 나온 것 처럼
"The expression of Call-after function is better than Call-back function"

1번 경우 예를 든다면

function A (1, function B () {
	console.log('나는 B이다');
  }){
  console.log('나는 A이다');
}
/* output : 
나는 A이다
나는 B이다
*/

위처럼 출력된다. 즉 function B 콜백 함수(so called: 콜after함수)는 본질적인 의미인 콜after함수 답게 function A의 로직을 다 실행시키고(console.log('나는 A이다')) 그 후 자기 로직 (console.log('나는 B이다'))를 실행시키므로 callback 함수 인 것이다.

그래서 2번째 의미인 다른 이벤트 후에 호출되는 함수도 콜백함수로 정의 되는 것이고, js에선 특히 비동기 과정에서 async 로 호출시키고 내부에 다른 async 함수를 (예를 들면 다른 서버에서 http통신으로response를 갖고 온다던지) 로직 순서를 위해 await으로 대기 시키거나 한다면 결국
순서대로 앞 함수가 완료되면서 호출 되기 땜에 내부 await 적용된 async 함수를 콜백함수라 할 수 있겠다.

stackOfFlow :

Callbacks are so-called due to their usage with pointer languages. If you don't use one of those, don't labour over the name 'callback'. Just understand that it is just a name to describe a method that's supplied as an argument to another method, such that when the parent method is called (whatever condition, such as a button click, a timer tick etc) and its method body completes, the callback function is then invoked.

해석 :

콜백들은 포인터 언어들의 사용 떄문에 그렇게 불립니다. 당신이 그것들중 하나를 사용하지 않거나, 그 콜백이란 이름에 관해 작동시키지 않는다면,
그냥 그건 또다른 부모 메서드라 불려진(버튼 클릭이라던지, 타이머 라던지 하는 어떠한 조건들), 또 다른 메서드에 하나의 인자로서 제공되어지는 메서드를 말하기 위한 단순한 이름에 불과합니다.
그 메서드의 body가 완료될 때, 그 콜백함수는 실행됩니다.

또다른 커멘트

"콜백은 실제로 뒤로 갈 필요가 있는게 아니라, 단지 다른 무언가를 실행하는 것!"

출 : https://satisfactoryplace.tistory.com/18
https://stackoverflow.com/questions/824234/what-is-a-callback-function

profile
낭만닥터와 슬의를 보고 저런 개발자가 되어야 겠다고 꿈꿔봅니다.

0개의 댓글