본문 바로가기
WEB front-end/Javascript

promise

by 겸둥이곰 2022. 5. 27.
반응형

* 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

댓글