순차적인 작업을 하고 싶다! -> 딜레이 함수를 쓴다. -> 작업이 많고 복잡하다. -> 딜레이 함수로 콜백 지옥이 시작된다. ( ! 가독성 안 좋음 ) -> 딜레이 함수에 setTimeout 은 순서보장이 안 된다. ( ! 순서 보장 안 됨 ) ==> 프로미스를 쓰자.
Promise() 프로미스 객체를 반환한다. return 값을 명시적으로 정해주면 [[promiseResult]] 값이 그걸로 변한다. 성공과 실패의 순서가 명확하다.