/**
* 호출되면 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의 가장 기본적인 비동기 처리 방식이니 먼저 익숙해진 다음 고민하는 것이 좋을 것 같다.