//--------------------------------------
//then을 이용해 순차적으로 덧셈
function proc1(arg1){
console.log('proc1 - 0', arg1);
fnPromise(1, 10)
.then( ret => { //resolve
console.log('then -1', ret); return ret;
})
.then( ret => {
ret++; console.log('then -2',ret); return ret;
})
.then( ret => {
ret++; console.log('then -3',ret); return ret;
})
.finally( ret => {
console.log('항상 호출- finally', ret);
})
.catch( ret => {
console.log('에러 -catch', ret);//reject
})
}
//----------------------------------
// async , await 사용
//비동기 함수를 여러번 호출, async
async function proc2(arg1){
console.log('proc2 - 0', arg1);
var ret = null;
try {
ret = await fnPromise(1, 10);
console.log('proc2 - 2', ret);
ret = await fnPromise(1, ret);
console.log('proc2 - 4', ret);
} catch(error){
console.log('proc2 - 에러', error);
}
}
//--------------------------------------
//기본 프라미스 함수(비동기)
function fnPromise(id, in1){
return new Promise( (resolve1, reject1) => {
setTimeout( function() {
console.log('fnPromise - 0', id, in1);
if( in1 !== false){
console.log('fnPromise - 1 - 성공', id, in1);
resolve1(in1+1);
}else{
console.log('fnPromise - 2 - 실패', id, in1);
reject1(in1);
}
},1000);
});
}
//------------------
$(function(){
proc2();
});
'Code > JavaScript' 카테고리의 다른 글
[Javascript] 전개 구문(Spread syntax , spread operator) (...) (0) | 2020.02.27 |
---|---|
[Javascript] EsLint 에러 해결 방법 (0) | 2020.02.23 |
[Javascript] 자바스크립트 메모리 관리 (0) | 2020.01.27 |
[링크] jQuery 를 순수 자바스크립트 코드로 바꾸기 (0) | 2020.01.27 |
[Javascript] 수학함수(Math), 값의 범위 (0) | 2019.10.26 |