반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 비동기
- 알고리즘
- 싸피
- 자바스크립트
- 리액트
- 코딩테스트
- 싸피 대전캠퍼스
- 프론트엔드
- 자바 코딩테스트
- 자료구조
- 싸피 12기
- 싸피11기
- 인프런
- swea
- ssafy
- 싸피 10기
- 싸피 기자단
- 자바 알고리즘
- 프로그래머스
- 코드트리
- 개발자
- 싸피셜
- 싸피 11기
- SSAFYcial
- 백준
- 알고리즘 자바
- 자바스크립트 자료구조
- 코딩테스트 자바
- jpa
- 싸피10기
Archives
- Today
- Total
병아리의 코딩 일기
Promise와 resolve(), thenable(), reject() 본문
resolve()
- 성공(fulfilled) 상태의
- Promise 인스턴스를 생성하여 반환한다.
- Promise.resolve() 형태로 작성한다.
- 파라미터 값에 따라 생성 바업이 다르다.
- 파라미터에 값을 작성하면
- 파라미터 값으로 Promise 인스턴스를 생성하여 반환
const obj = Promise.resolve(["sports", "music"]); obj.then((value) => { console.log(value); }); console.log("끝");
- const obj = Promise.resolve(["sports", "music"]);Array, Object 등을 사용해야 한다.
- resolve() 파라미터에 값을 작성했다. 값을 하나만 작성할 수 있으므로 다수를 작성하려면
- new 연산자를 사용하지 않지만 Promise 인스턴스를 생성하여 반환한다.
- 성공(fulfilled) 상태로 설정한다.
- 성공 상태이므로 then()의 첫 번째 파라미터 함수가 호출된다.
- obj.then((value) => {log(value)});
- Promise.resolve([”sports”, “music”])의 파라미터 값이 value에 설정된다.
- 파라미터에 Promise 인스턴스를 작성하면
- 파라미터의 Promise 인스턴스의 값을 사용하여
- Promise 인스턴스를 생성하여 반환
const obj = Promise.resolve(["sports", "music"]); Promise.resolve(obj).then((value) => { console.log(value); }); // ["sports", "music"]
- Promise.resolve(obj)
- resolve() 파라미터에 Promise 인스턴스를 작성했다.
- Promise 인스턴스를 생성하여 반환한다.
- 성공(fulfilled) 상태로 설정한다.
- then(param) ⇒ {log(param); });
- obj 인스턴스의 resolve() 파라미터 값이 param에 설정된다.
thenable
- Promise.resolve()의 파라미터에
- then()을 작성한 형태이다.
const obj = Promise.resolve({
then(resolve, reject) {
resolve([1, 2]);
},
});
obj.then((value) => {
console.log(value);
});
console.log("끝");
reject()
- 실패(reject) 상태의
- Promise 인스턴스를 생성하여 반환한다.
- Promise.reject() 형태로 작성한다.
- 파라미터에 reject 사유를 작성한다.
- then()을 연결한 형태
const obj = Promise.reject("실패");
obj.then(
(value) => {
console.log(value);
},
(value) => {
console.log(value);
}
);
- 실패 상태이므로 then()의 두 번째 파라미터 함수가 호출된다.
- Promise.reject(”실패”)에서 “실패”가 value에 설정된다.
- catch()를 연결한 형태
const obj = new Error("에러 발생");
Promise.reject(obj).catch((error) => {
console.log(error.message);
});
console.log("끝");
// 끝
// 에러 발생
- Error 인스턴스를 생성한다.
- Promise.reject(obj)reject()를 실행하지 않는다.
- obj 인스턴스를 사용하여 Promise 인스턴스를 생성한다.
- log(”끝”)을 실행한다.
- Promise.reject(obj)를 실행하며
- catch()가 호출된다.
- catch((error) ⇒ log(error.message));
- obj 인스턴스가 error에 설정된다.
<aside> 💡 성공, 실패가 결정되어 있는 상태라면 이런 방식으로 프로미스를 생성할 수 있다.
</aside>
728x90
반응형
LIST
'자바스크립트 ES6+ > Promise' 카테고리의 다른 글
Promise 메커니즘 분석 (0) | 2023.12.29 |
---|---|
Promise와 all(), race() (1) | 2023.12.29 |
Promise와 then(), catch(), finally() (0) | 2023.12.29 |
Promise의 처리 흐름 및 상태에 대해 알아보자! (0) | 2023.12.29 |