
function isPositive(number,resolve, reject){
setTimeout(()=>{
if(typeof number === 'number'){
// 성공 -> resolve
resolve(number >= 0 ? "양수":"음수")
}else{
// 실패 -> reject
reject("주어진 값이 숫자형 값이 아닙니다");
}
},2000)
}
isPositive(10,(res)=>{
console.log("성공적으로 수행됨 : ",res)
},(err)=>{
console.log("실패 하였음 : ", err);
});

function isPositive(number,resolve, reject){
setTimeout(()=>{
if(typeof number === 'number'){
// 성공 -> resolve
resolve(number >= 0 ? "양수":"음수")
}else{
// 실패 -> reject
reject("주어진 값이 숫자형 값이 아닙니다");
}
},2000)
}
function isPositiveP(number){
const exector = (resolve,reject) =>{ // 실행자
setTimeout(()=>{
if(typeof number === 'number'){
// 성공 -> resolve
console.log(number);
resolve(number >= 0 ? "양수":"음수")
}else{
// 실패 -> reject
reject("주어진 값이 숫자형 값이 아닙니다");
}
}, 2000);
};
const asyncTask = new Promise(executor);
return asyncTask;
}
const res = isPositiveP(101); //Promise 타입의 객체를 반환받
res
.then(()=>{
console.log("작업 성공 : ", res);
})
.catch((err) => {
console.log("작업 실패 : ", err);
});

function taskA(a, b){
return new Promise((resolve, reject) => {
setTimeout(() => {
const res = a + b;
resolve(res);
}, 3000);
});
}
// then 체이닝 방식
taskA(5,1).then((a_res) => {
console.log("A RESULT : ", a_res);
return taskB(a_res);
}).then((b_res)=>{
console.log("B RESULT : ",b_res);
});