비동기 작업의 Pending상태에서 작업의 성공은 resolve로 처리하고, 실패는 reject로 처리한다.
콜백함수를 이용해서 비동기 작업의 성공, 실패를 핸들링
<script>
// 인자로 값을 전달하는 number, 성공 작업을 처리할 resolve
// 실패 작업을 처리할 reject를 인자로 전달
function isPositive(number, resolve, reject) {
setTimeout(() => {
if (typeof number === "number") {
// 성공 -> resolve
resolve(number >= 0 ? "양수" : "음수");
} else {
// 실패 -> reject
reject("주어진 값이 숫자형이 아닙니다.");
}
}, 2000);
}
isPositive(
// 배열을 number 매게변수로 전달
[],
(res) => {
console.log("성공적으로 수행됨 : ", res);
},
// 전달한 값이 숫자형이 아니기 때문에 reject가 실행되어 err 표시
(err) => {
console.log("실패 : ", err);
}
);
</script>