Untitled

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);
});

Untitled

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);
	});

Untitled

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);
});