제가 이해한 바로는 1. then 메소드의 리턴값은 무조건 promise 객체가 된다, 2. 콜백 함수의 리턴값은 promise 객체가 아닐수도 있다, 이 두 가지 이유 때문에 then 메소드가 리턴하는 프로미스 객체와 콜백 함수의 리턴값을 분리해서 말씀하신 것 같습니다. 내부 콜백 함수가 promise 객체를 리턴하는 메소드일 수도 있지만(예: 강의에 나왔던 text 메소드) 아닐 수도 있기 때문에 promise 객체를 리턴하는 콜백 함수의 경우 결과적으로 then 메소드가 반환하는 promise 객체와 동일한 상태값, 결과값을 가지게 되고 / 다른 값을 리턴하는 콜백의 경우 then메소드가 반환하는 상태값은 일단 fulfilled가 되고 (콜백의 상태값은 없으므로) 콜백의 결과값을 then 메소드의 promise 객체가 작업 성공 결과로 가지게 되는 거라고 이해했습니다. 그래서 아마 then메소드가 리턴한(했던?) promise 객체라는 것은 then메소드가 최종적으로 리턴하게 되는 값(프로미스 객체)을 말하게 되는 것 같아요. ~했던 이라고 표현하셨다면 일단 pending 상태로 프로미스 객체가 작업 결과를 기다리고 있기 때문이 아닐까 합니다..
댓글 2개