• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

promise 이해 1 16분 23초 부분 질문입니다.

21.03.01 23:47 작성 조회수 115

0

.then함수에서 

최초 reject(); 함수가 실행되고 다시 .then을 실행할 때 함수 인자가 하나일 경우 성공함수만 호출된다라고 말씀하셨는데

아래 then엔 인자가 하나이니 실행이 안되어야 하는거 아닌가요 ?

즉, by Dave Lee가 출력 되려면 첫번째 then에서 resolve가 출력되어야 하는거 아닌지요..

-> 왜 첫번째 then은 실패, 두번째 then은 성공이 출력되는지 이해가 되질 않습니다..ㅠ

만약 두번째 then부터는 첫번째 함수만 실행되는거면 예제에 나온것처럼 then에 두번째 인자는 필요 없는거 아닌가요 ??

답변 1

답변을 작성해보세요.

1

일단은, chaining 으로 then 을 연결해서 사용하는 경우는 순차적으로 실행되어야 할 코드를 연결하기 위해 사용됩니다.

기재한 16분상의 코드는 결국 다음과 같이 작성한 것이나 마찬가지인 것 같습니다.

 promise.then(successCallback1, failureCallback1).then(successCallback2)

그렇다면, 첫번째 실행에서는 failureCallback1 이 실행되고, 그런 다음에 순차적으로 실행되도록 설정된 그 다음 then 에 있는 successCallback2 을 실행한 것으로 이해할 수 있을 것 같아요. then 에 인자를 하나 넣을 때는 성공할 때만을 설정한 것이고, 두개 넣으면 성공/실패를 따로 분리한 것이고요. 

then(successCallback)

then(successCallback, failureCallback)

하나의 인자를 넣은 것을 chaining 으로 만들었다면, 이는 순차적으로 실행되는 코드를 넣는 경우가 많으니, 

첫번째는 실패콜백, 그 후 두번째는 성공콜백을 실행하는 것이 맞는 것 같습니다.

해당 영상을 다시 한번 보시면, 좀더 이해하실 수 있으실꺼예요.

감사합니다.

Dave Lee in 잔재미코딩