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)}
);
위의 코드를 promise를 사용하여 작성하면 아래처럼 된다.
function isPositiveP(number) {
const executor = (resolve, reject) => {
// executor = 실행자함수
setTimeout(() => {
if(typeof number === 'number') {
//성공 -> resolve
resolve(number >=0 ? '양수' : '음수')
} else {
//실패 -> reject
reject('주어진 값이 숫자형 값이 아닙니다');
}
}, 2000)
}
const asyncTask = new Promis(executor);
return asyncTask;
//executor로 실행하여 나온 값을 asyncTask에 담아서 리턴시킴
}
const res = isPositiveP(101);
res
.then((rex)=>{console.log('작업성공 : ', res)})
.catch((err)=>{console.log('작업실패 : ', err)})
프로미스의 생성 : new Promise();
콜백함수 선언 시 인자 : resolve, reject
resolve는 then()으로 받고, reject는 catch()로 받음
taskA(5, 1)
.then((a_res) => {return taskB(a_res)})
.then((b_res) => {return taskC(b_res)})
.then((c_res) => {console.log(c_res)})
공부하며 정리&기록하는 ._. 씅로그