callback to promise

2021. 5. 24. 21:57TIL/자바스크립트

728x90
// Callback Hell example
class UserStorage {
    loginUser(id, password) {
        return new Promise((resolve, reject) => {
            setTimeout(()=> {
                if (
                    (id === 'bella' && password === 'dream') ||
                    (id === 'coder' && password === 'academy')
                ) {
                    resolve(id);
                } else {
                    reject(new Error('not found'));
                }
            }, 2000);
        });
    }

    getRoles(user) {
        return new Promise((resolve, reject) => {
            setTimeout(()=> {
                if (user === 'bella') {
                    resolve({name: 'bella', role: 'admin'});
                } else {
                    reject(new Error('no access'));
                }
            }, 1000);
        });
    }
}

const userStorage = new UserStorage();
const id = prompt('enter you id');
const password = prompt('enter you password');
userStorage
    .loginUser(id, password)
    .then(userStorage.getRoles)
    .then(user => alert(`Hello ${user.name}, you have a ${user.role} role`))
    .catch(console.log);

'TIL > 자바스크립트' 카테고리의 다른 글

로그인 화면 만들기  (0) 2021.06.17
async & await  (0) 2021.05.27
Promise  (0) 2021.05.24
비동기처리 콜백  (0) 2021.05.20
JSON  (0) 2021.05.20