본문 바로가기
메모 log (간단메모)/backend

Promise

by abbear25 2020. 9. 20.

Promise

실행 후 결과는 나중에 수신하는 객체

Callback 대신 Promise

*ES2015 (ES6)부터 제공

const condition = true;
const promise = new Promise((resolve, reject) => {
    if(condition){
        resolve('성공');
    } else{
        reject('실패');
    }
});

promise.then((message) => { console.log(message); }) //resolve 실행시 then 실행, 성공 출력
        .catch((error) => { console.error(error);  }) //reject 실행시 catch 실행, 실패 출력
        .finally(() => { console.log('종료 후 반드시 실행'); });

 

async/await

Promise를 좀 더 깔끔하게

ES2017 (ES7)부터 제공 (Node.js 7.6부터 제공)

function findAndSaveUser(Users){
    Users.findOne({})
        .then((user)=> {
            user.name = 'illua';
            return user.save()
        })
        .then((user)=>{
            return Users.findOne({gender:'m'});
        })
        .catch(err=>{
            console.log(err);
        });
}
async function findAndSaveUser(Users){
    try{
        let user = await Users.findOne({});
        user.name = 'illua';
        user = await user.save();
        user = await Users.findOne({gender:'m'});
    }catch(error){
        console.error(error);
    }
}

 

반응형

'메모 log (간단메모) > backend' 카테고리의 다른 글

파일 처리 방식  (0) 2020.09.22
AJAX 요청 - axios 또는 jQuery  (0) 2020.09.20