-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
promise 이해 1 16분 23초 부분 질문입니다.
21.03.01 23:47 작성 조회수 115
0
.then함수에서
최초 reject(); 함수가 실행되고 다시 .then을 실행할 때 함수 인자가 하나일 경우 성공함수만 호출된다라고 말씀하셨는데
아래 then엔 인자가 하나이니 실행이 안되어야 하는거 아닌가요 ?
즉, by Dave Lee가 출력 되려면 첫번째 then에서 resolve가 출력되어야 하는거 아닌지요..
-> 왜 첫번째 then은 실패, 두번째 then은 성공이 출력되는지 이해가 되질 않습니다..ㅠ
만약 두번째 then부터는 첫번째 함수만 실행되는거면 예제에 나온것처럼 then에 두번째 인자는 필요 없는거 아닌가요 ??
풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
모던 웹을 위한 Javascript+ES6 비동기 처리를 위한 Promise 이해1
강의실 바로가기
답변을 작성해보세요.
1
잔재미코딩 DaveLee
지식공유자2021.03.02
일단은, chaining 으로 then 을 연결해서 사용하는 경우는 순차적으로 실행되어야 할 코드를 연결하기 위해 사용됩니다.
기재한 16분상의 코드는 결국 다음과 같이 작성한 것이나 마찬가지인 것 같습니다.
promise.then(successCallback1, failureCallback1).then(successCallback2)
그렇다면, 첫번째 실행에서는 failureCallback1 이 실행되고, 그런 다음에 순차적으로 실행되도록 설정된 그 다음 then 에 있는 successCallback2 을 실행한 것으로 이해할 수 있을 것 같아요. then 에 인자를 하나 넣을 때는 성공할 때만을 설정한 것이고, 두개 넣으면 성공/실패를 따로 분리한 것이고요.
then(successCallback)
then(successCallback, failureCallback)
하나의 인자를 넣은 것을 chaining 으로 만들었다면, 이는 순차적으로 실행되는 코드를 넣는 경우가 많으니,
첫번째는 실패콜백, 그 후 두번째는 성공콜백을 실행하는 것이 맞는 것 같습니다.
해당 영상을 다시 한번 보시면, 좀더 이해하실 수 있으실꺼예요.
감사합니다.
Dave Lee in 잔재미코딩
답변 1