Develop Note by J.S.

[Javascript] Promise 본문

Language/Javascript

[Javascript] Promise

js-web 2023. 6. 19. 09:22
반응형

1. Promise란

Promise는 ES6에서 새로나운 객체로, then, catch, finally 프로퍼티를 사용하여 비동기처리를 제공하는 기능입니다.

1) then : 앞선 비동기 동작이 종료된 후 동작될 function을 매개변수로 정의한 뒤 이후 순차적으로 then내부에 있는 function들이 동작됩니다. 
2) catch : then 동작 중 error 발생 시 가로채어 에러처리를 정의할 수 있습니다. 
3) finally : 모든 then 동작이 마무리된 후 마지막에 실행 될 function을 정의합니다. 

 

2. Promise 예제

console.log('1');
function callback1 () {
    return new Promise ((resolve)=> {
        setTimeout(function() {
            resolve('2')
        }, 1000)
    })
}

function callback2 () {
    return new Promise ((resolve, reject)=> {
        setTimeout(function() {
            reject('3')
        }, 1000)
    })
}

callback1()
.then((number)=>{
    console.log(number);
    return callback2();
})
.then((number)=>{
    console.log(number);
})
.catch((error)=>{
    console.log('error :', error);
})
.finally(() => {
	console.log('finally!!');
});

console.log('4');

Promise 객체는 new를 붙여 생성하며 첫번째 파라메터 자리에 callback 함수의 전달인자 resolve와 reject는 각각 비동기 이후 응답될 데이터의 성공 실패를 각각 resolve('return value'), reject('retrun error value')로 사용합니다.

반응형