AHRIBORI.COMv0.9
HomeAbout (2)Javascript (7)CSS (12)React (3)Webpack (1)Java (0)Node.js (4)ElasticSearch (1)자료구조 (8)알고리즘 (6)Selenium (1)Linux (2)Docker (1)Git (1)Tip (4)Issue (1)Memo (3)

비동기작업 처리하기 - 1. Callback function

아리보리 | 2017.03.17 10:54 | 조회 198 | 추천 0 | 댓글 0

/**
 * 호출되면 3초 후에 첫 번째 인자로 받은 message를 출력하고
 * 두 번째 인자로 받은 callback function을 호출하는 function이다.
 * @param message
 * @param callback
 */
function asyncTask(message, callback) {
    setTimeout(() => {
        console.log(message);
        if (typeof callback === 'function') {
            callback();
        }
    }, 3000);
}

asyncTask('step1', () => {
    asyncTask('step2', () => {
       asyncTask('step3', () => {
           asyncTask('step4', () => {
               asyncTask('step5', () => {
                   console.log('done');
               })
           })
       });
    });
});

callback으로 비동기 작업을 여러 번 수행하다 보면 모니터를 오른쪽으로 뚫을듯한 callback hell이 만들어져서 보기도 힘들고 관리하기도 힘들다. 하지만 javascript와 Node의 가장 기본적인 비동기 처리 방식이니 먼저 익숙해진 다음 고민하는 것이 좋을 것 같다.