JavaScript로 비동기 프로그래밍을 할 때 JavaScript가 함수형 언어이기 때문에 발생하는 현상인 콜백 지옥이란 게 있다.. work1 함수 끝나고 work2 함수가 불렸으면 좋겠고 work2 함수가 끝나고 나면 work3을 불렀으면 좋겠고.. 이런 요구사항이 발생할때 function work1(onDone) { setTimeout(() => onDone("work 1 done"), 100); } function work2(onDone) { setTimeout(() => onDone("work 2 done"), 200); } function work3(onDone) { setTimeout(() => onDone("work 3 done"), 300); } work1(function (msg1) ..