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와 비밀번호를 입력시 동작되는 코드를 생성합니다.
댓글
댓글 쓰기