JavaScript

JS | 비동기 처리의 시작 콜백

2021. 12. 27. 07:57
목차
  1. Synchronous callback
  2. Asynchronous callback

Javascript callback

Javascript 는 synchronous 한다. (동기적입니다.)
hoisting이 된 후 코드가 작성한 순서에 따라 동기적으로 실행된다.

비동기적인(asynchronous) 실행방법

 console.log('1');
 setTimeout(function () {
     console.log('2');
 }, 1000);
 console.log('3');

 // output
 //1
 //3
 //2

첫번째로 console창에 1이 출력되고 두번째로 setTimeout은 Browser API 이므로 Browser에게 1000ms가 지난 후에 callback 함수가 실행되도록 요청하고 응답을 기다리지 않고 바로 세번째로 콘솔에 3을 출력한다. 그러고나면 1초가 지난 후에 setTimeout의 callback 함수가 출력된다.

setTimeout api의 function은 바로 실행되는 것이 아니라 setTimeout 함수 안에 하나의 parameter 인자로 지정한, 우리가 만든 함수를 전달한다.
지금 당장 실행하지 않고 1초가 지난 후에 함수를 실행, 다시 call 해달라고 전달하는 함수를 callback 함수라고 한다.

 setTimeout( () => console.log('2'), 1000);

callback을 parameter 인자로 받아서 이를 처리하는 함수를 만들어 볼 것

Synchronous callback

즉각적으로 동기적으로 실행하는 callback
callback을 parameter 인자로 받아서 처리하는 함수

 function printImmediately(print) {
     print();
 }            // print 라는 callback을 받아서 바로 실행하는 함수
 printImmediately(() => console.log('hello');

Asynchronous callback

언제 실행될지 모르는 비동기적으로 실행되는 callback

 function printWithDelay(print, timeout){
     setTimeout(print, timeout);
 }
 printWithDelay(() => console.log('async callback'), 2000);

 -----------------------------------------------------------
  console.log('1');                        //동기
  setTimeout( () => console.log('2'), 1000);            //비동기
  console.log('3');                        //동기
  printImmediately(() => console.log('hello'));            //동기
  printWithDelay(() => console.log('async callback'), 2000);    //비동기

'JavaScript' 카테고리의 다른 글

JS | async 와 await  (0) 2021.12.29
JS | Promise ( Producer, Consumer)  (0) 2021.12.28
JS | Array  (0) 2021.12.22
JS | Script option, Operator, Class and Object  (0) 2021.12.21
JS | logical and data type  (0) 2021.12.20
  1. Synchronous callback
  2. Asynchronous callback
'JavaScript' 카테고리의 다른 글
  • JS | async 와 await
  • JS | Promise ( Producer, Consumer)
  • JS | Array
  • JS | Script option, Operator, Class and Object
3jun
3jun
3jun
3jun
3jun
전체
오늘
어제
  • 분류 전체보기 (94)
    • 프로젝트 (5)
    • Web (9)
    • JavaScript (19)
    • React (12)
    • 알고리즘 (31)
    • Git (3)
    • AWS (3)
    • TypeScript (3)
    • CS (2)
    • Error (6)
    • 회고 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 백준 코테
  • msw
  • Promise
  • msw 에러
  • outer environment
  • 백준js
  • 백준 온라인저지
  • 프로그래머스 js
  • airbnb style guide
  • 백준 js
  • 자바스크립트
  • JavaScript
  • 프로그래머스 코딩테스트 js
  • 프로그래머스 코딩테스트
  • state
  • 프로그래머스 코테
  • 유효성 로직
  • 백준 알고리즘
  • react
  • this.props.history.push

최근 댓글

최근 글

hELLO · Designed By 정상우.
3jun
JS | 비동기 처리의 시작 콜백
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.