결론부터 말하면 비동기 작업을 순차적으로 실행하기 위해서 Promise Chaining을 한다고 말 할수 있습니다.
다음 코드를 자세히 봅시다. 👇 지금 2번째 then메서드 콜백에서는 2번째 fetch함수가 리턴하는 Promise 객체를 리턴하고 있습니다. 이렇게 then메서드 안에 콜백에서 Promise 객체를 리턴하면 then메소드가 리턴했던 Promise 객체도 콜백에서 리턴한 Promise 객체와 똑 같은 상태와, 결과를 갖게 됩니다.
2번째 fetch함수가 리턴하는 Promise 객체에 then이 연결되어 계속해서 Chaining을 할수 있습니다.
이것이 Promise Chaining의 중요한 특징인데요. 이런 성질을 잘 이용하면 콜백안에서 Promise 객체를 리턴하는 경우에 콜백안에 then 메소드를 쓸 필요가 없습니다.
👉 정리
지금 코드에서 보이는것 처럼 👇 콜백 안에서 Promise 객체를 바로 리턴 해버리고,
밖같에 있는 Promise Chaining에 then메소드를 붙이면 됩니다.
이게 가능한 이유는 2번째 콜백에서 Promise 객체를 리턴하면, then메소드가 리턴했던 Promise객체가 콜백에서 리턴한 Promise 객체와 동일한 상태와 결과를 가진다는 규칙때문에 가능 합니다.