* Promise 객체는 비동기 작업이 맞이할 미래의 완료 또는 실패와 그 결과값을 나타냄.
미래의 어떤 시점에 결과를 제공하겠다는 약속(promise)를 반환 함.
Promise를 사용하여 작업이 끝났을때 호출하는 callback 함수 대신 .then 메소드를 사용하여 명확하게 코딩할 수 있다.
* 상태
- 대기(pending) : 이행하지도, 거부하지도 않은 초기 상태
- 이행(fullfiled) : 연산이 성공적으로 완료됨.
- 거부(rejected) : 연산이 실패함
* 생성
- new Promise((resolve, reject) => { })
* 사용법
- 아래와 같이 변수로 선언하면 선언된 프로미스는 즉시 실행된다.
let a = new Promise((resolve, reject) => {
// 여기에 실행할 문장
// 성공하면 resolve 콜백 함수를 사용하여 리턴
// 에러나 실패시 reject를 사용하러 리턴
});
// 아래의 문장이 없어도 위의 Promise는 실행된다.
a.then(() => console.log("성공 ")).catch(() => console.log("오류")).finally(()=> console.log("end "));
- 아래는 함수를 호출할 때 실행되는 Promise
function a(){
return new Promise((resolve, reject) => {
// 여기에 실행할 문장
// 성공하면 resolve 콜백 함수를 사용하여 리턴
// 에러나 실패시 reject를 사용하러 리턴
});
}
// 아래의 구문이 없으면 호출되지 않는다
a().then(() => console.log("성공")).catch(() => console.log("에러")).finally(()=> console.log("end"));
* 추가 메소드
- all() : 주어진 모든 Promise가 다 실행된 후에 결과를 리턴
- allSettled() : 주어진 모든 Promise를 이행하거나 거부한 후, 각 Promise에 대한 결과를 나타내는 객체 배열을 반환
- any() : 주어진 모든 Promise중에 첫번째로 해결된 값을 반환
- catch() : Promise의 거부또는 오류 경우 처리
- finally() : Promise 모든(이행, 거부, 오류) 처리후 실행됨
- race() : 주어진 모든 Promise 중 하나가 이행하거나 거부하는 즉시 이행하거나 거부하는 약속을 반환
- reject() : Promise의 거부된 개체를 반환
- resolve() : Promise의 이행된 개체를 반환
- then() : Promise의 송공 및 실패에 대한 콜백함수(2개의 인수를 사용한다)
'WEB front-end > Javascript' 카테고리의 다른 글
예외처리... (0) | 2022.06.02 |
---|---|
async/await (0) | 2022.05.27 |
호이스팅(hoisting) (0) | 2022.05.26 |
arrow function (0) | 2022.05.17 |
반복문 (0) | 2022.05.17 |
댓글