티스토리 뷰

LANGUAGE/JAVA SCRIPT

[JAVA SCRIPT] CALLBACK - 콜백

진심스테이크 2019. 7. 19. 17:02

 

콜백 : 나중에 호출할 함수

- 가장 오래된 비동기적 매커니즘

- 일반적으로 다른 함수에 넘기거나 객체의 프로퍼티로 사용

- 드물게는 배열에 넣어서 쓰는 경우도 있음

- 보통 익명 함수로 사용

 

내장 함수

- setTimeout( ) : 콜백의 실행을 지정된 밀리초만큼 지연하는 내장 함수

  - 한번만 실행하고 멈춤

- setInterval( ) : 콜백을 정해진 주기마다 호출

clearInterval( ) : setInterval( )을 사용을 멈출 때 호출

 

오류 우선 콜백 : 콜백과 관련된 에러를 처리할 방법의 표준

- 콜백의 첫 번째 매개변수에 에러 객체를 씀

const fs = require('fs');

const fname = 'may_or_may_not_exist.txt';
fs.readFile(fname, function (err, data) { //err : 오류 우선 콜백
    if (err) return console.error(`error reading file ${fname} : ${err.message}`);
    console.log(`${fname} contents : ${data}`);
});

 

콜백 헬 : 콜백 단점

- 한번에 여러가지를 기다려야 한다면 콜백을 관리하기가 어려워짐

const fs = require('fs');

fs.readFile('a.txt', function (err, dataA) {
    if (err) console.error(err);
    fs.readFile('a.txt', function (err, dataB) {
        if (err) console.error(err);
        fs.readFile('a.txt', function (err, dataC) {
            if (err) console.error(err);
            setTimeout(function () {
                fs.writeFile('d.txt', dataA + dataB + dataC, function (err) {
                    if (err) console.error(err);
                });
            }, 60 * 1000);
        });
    });
});

'LANGUAGE > JAVA SCRIPT' 카테고리의 다른 글

[JAVA SCRIPT] FUNCTION - 함수  (0) 2019.07.30
[JAVA SCRIPT] PROMISE - 프라미스  (0) 2019.07.19
[JAVA SCRIPT] JSON  (0) 2019.02.08
[JAVA SCRIPT] AJAX  (0) 2019.02.06
[JAVA SCRIPT] CONST, LET, VAR  (0) 2018.12.15
댓글