Promise 예제


const stage1_Error = false;
const stage2_Error = false;
const stage3_Error = false;

function stage1(){
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            if(stage1_Error === falseresolve('stage1 clear');
            else reject(new Error(`stage1 Error`));
        }, 1000);
    });
}

function stage2(ele){
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            if(stage2_Error === falseresolve(`${ele} -> stage2 clear`);
            else reject(new Error(`stage2 Error`));
        }, 2000);
    });
}

function stage3(ele){
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            if(stage3_Error === falseresolve(`${ele} -> stage3 clear`);
            else reject(new Error(`stage3 Error`));
        }, 2000);
    });
}

stage1()
    .catch((error) => {
        console.log(error);
        return 'stage1 skip';
    })
    .then(ele => stage2(ele))
    .catch((error) => {
        console.log(error);
        return 'stage2 skip';
    })
    .then(ele => stage3(ele))
    .catch((error) => {
        console.log(error);
        return 'stage3 skip';
    })
    .then((ele) => console.log(`${ele} Finish`))
    .catch(console.log);















댓글

이 블로그의 인기 게시물

Lesson 12_1 프로퍼티 노드(Property Node)

DAQ로 전압 측정하기-2

Lesson 12_2 참조를 이용한 프로퍼티노드(Property Node)