728x90
반응형
앞서 다뤘던 내용들에서는 이미 만들어진 Promise를 가져다 사용하였다.
이번에는 Promise를 직접 만들어서 사용해보자.
<script>
function job1(){
return new Promise(function(resolve, reject){
setTimeout(function(){
resolve('resolved ok!');
}, 2000);
});
}
job1().then(function(data){
console.log('data', data);
})
</script>
new Promise 라는 키워드로 Promise를 새로 만들 수 있고, job1() 함수에서는 이 Promise를 리턴하도록 해줬다. Promise에는 Promise에서 실행된 작업이 성공했을 때와, 실패했을 때에 대한 콜백함수가 정의되어야 한다. 그리고 이 함수는 2개의 파라미터를 갖는데 하나는 성공했을 때 호출될 함수(resolve)이고, 다른 하나는 실패했을 때 호출될 함수(reject) 이다.
resolve, reject 이름은 아무거나 설정 가능하지만 관습적으로 저렇게 적는다고 한다.
따라서 위 코드의 job1() 함수를 실행하면 setTimeout을 실행하는 함수가 호출되고, job1()이 성공하면 console.log가 실행될 것이다.
실행 화면은 다음과 같다.
728x90
반응형
'JavaScript' 카테고리의 다른 글
[JavaScript] async & await (0) | 2022.05.23 |
---|---|
[JavaScript] 비동기(Asynchronous) - Promise (then, catch) (0) | 2022.05.23 |
[JavaScript] 자바스크립트 Callback (콜백 함수) (0) | 2022.05.21 |