Build asynchronous callback(비동기 콜백) Example

 

class UserInfor{    
    UserInfor(id, passWord, onSucc, onError){
        setTimeout(() => {
            if(
                (id === 'Alex' && passWord === '1234'||
                (id === 'Jhon' && passWord === '5678'||
                (id === 'Mical' && passWord === '123')
            ){
                onSucc(id);
            }

            else if((id !== 'Alex'&& (id !== 'Jhon'&& (id !== 'Mical')) {
                onError(new Error(`id ${id} doesn't exist`));
            }

            else{
                onError(new Error(`Password is wrong`));
            }

        }, 1000)
    }

    getInfor(user, onSucc, onError) {
        setTimeout(() => {
            if(user === 'Alex' || user === 'Jhon' || user === 'Mical'){
                if(user === 'Alex'onSucc({ name : 'Alex', job : 'Programmer' });
                else if(user === 'Jhon'onSucc({ name : 'Jhon', job : 'Builder' });
                else if(user === 'Mical'onSucc({ name : 'Mical', job : 'Writer' });
            }

            else{
                onError(new Error(`Error ${user}`));
            }
        }, 2500);
    }
}

먼저 Class를 선언합니다.


 const userInput = new UserInfor(); // userInput Class선언
 const id = prompt('Enter your ID'); // id 입력
 const passWord = prompt('Enter your Password'); // 비밀번호 입력

    userInput.UserInfor(
            id, 
            passWord, 
            user => { // onSucc
                userInput.getInfor(
                user, 
                (obj) => { // onSucc
                    alert(`${obj.name} : ${obj.job} (your job)`)
                }, 

                error => { console.log(error}
            )},
            error => {
                console.log(error);
            }
        )

위 코드처럼 사용자 ID와 비밀번호를 입력시 동작되는 코드를 생성합니다.











댓글

이 블로그의 인기 게시물

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

DAQ로 전압 측정하기-2

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