생각기록

callback 본문

SeSAC 풀스택/Nodejs

callback

끼록관 2022. 11. 17. 19:05

정의: 함수에 파라미터로 들어가는 함수/ 함수가 끝난 뒤 실행되는 함수

용도: 순차적으로 실행하고 싶을 때 씀 ( 동기 처리 )

 

callback 함수 예문console.log('1');
setTimeout ( function () { console.log('2'); }, 1000);
console.log('3');

동기 얘들이 먼저 순차적 실행 되고,  1, 3

1초 경과후 이  함수를 실행해주세요 >  2

 

setTimeout()메서드는 타이머가 만료되면 함수 또는 지정된 코드 조각을 실행하는 타이머를 설정

비동기인 이 함수는 웹브라우저에서 1초 지나고 난 뒤 실행 한다.

 

바로 실행하는 것이 아니라, setTimeout라는 함수 안에 하나의 파라미터 인자로 지정한 함수를 전달한다.

니가 1초 뒤에 다시 불러줘 callback함수

 

보통 이런얘들은 화살표 함수로 함수를 선언하지 않고 간단하게 전달할 수 있다.

화살표 함수
console.log('1');
setTimeout ( () =>  console.log('2') , 1000);
console.log('3');

ex)addEventListener

document.quertSelector('.button').addEventListener('click', function(){  })

.addEventListener  //얘는 함수

파라미터 자리에 function() 또 함수가 있다.

=callback

 

이 버튼을 클릭하면, 이 함수를 실행 시켜줘 = callback

 

 

동기 callback, 비동기 callback의 순서


콜벡 함수 만드는 법

 

 

funcion first(파라미터){

   파라미터()

}

 first(function(){}) > 하면 쓸 수 있다.

 

 

 

다른데서 만든 함수 넣기

Q. first()함수 다음에 second() 함수 실행하고 싶으면?

밑의 두줄은 콜백 함수 없이도 순차적 실행이 된다.

fist()

second()

 

협업 할 때 예시

팀원1. first()후에 console.log(2); 바로 하고 싶은데요?

바로 코드를 실행하고 싶을 때

first()함수를 업그레이드 하자

function first(파라미터){
   console.log(1);
   파라미터()
}

function second(){
   console.log(2);
   second();
}
first (second)

실행할 코드를 넣어주는 곳, 그게 실행 될 곳

 

 

 

funcion first(파라미터){

   console.log(1);          //first  실행

   second();

}

function second() {

   console.log(2);           // 1 다음 2가 실행

}

first(second)  // first 라는 함수 실행해주세요. 근데 파라미터 자리에 second 집어 넣어서요!

 

 

 

 

 

 

자바스크립트

fist calss citizen

일급 시민에 해당하는 문법이 있다.

 

va1 = 1;

1은 변수의 값이 될 수 있다 = 1급 시민

함수는? 값이 될 수 있습니다 = 1급 시민

 

조건문은 변수의 값이 될 수 있나요?

될 수 없기 때문에, 2급 시민!

 

또 하나의 조건 

fn이라는 함수는 val이라는 함수를 리턴값이 될 수 있다면? 그 언어는 함수를 일급시민으로 대우 해줌

function fn(){

  val = function( a ){

          return b;

return val; 

}

 

 

val = funcion( a)

return b; }

fn(val);

 

함수가 다른 함수의 입력값이 될 수 있다면, 1급시민 대우

 

콜백은

 

val = funcion( a)

return b;

}

function fn(arg){    //(arg) 파라미터를  받아서 함수 안에서 파라미터를 함수로서 호출하고 있다.

    arg();

}

fn(val);  //val 함수가 입력값으로 사용 되고 있다.

 

즉 vall은 바로 실행되지는 않지만, 입력값으로 전달 되서 다른 함수에 의해서 나중에 호출 된다 = 콜벡 함수

 

https://satisfactoryplace.tistory.com/18

 

콜백 함수(Callback)의 정확한 의미는 무엇일까?

다양한 언어나 컴퓨터 관련 지식을 공부하면서, "콜백"이라는 단어는 많이 보았으나 그것의 정확한 의미를 설명해주는 책은 없었던 것 같다. 어쩌면 컴퓨터공학에서는 너무도 당연한 것이라서

satisfactoryplace.tistory.com

 

 


 

'SeSAC 풀스택 > Nodejs' 카테고리의 다른 글

2022-11-22 Express, ejs 수업  (0) 2022.11.23
2022_11_19_프로미스  (0) 2022.11.19
2022-11-17 node.js 모듈, 구조 분해 할당, callback  (0) 2022.11.17
노드.js  (0) 2022.11.15
2022-11-12 서버  (0) 2022.11.12