여튼 async await 는 프로미스를 정말 간결하고 편하게 사용할 수 있는 문법이다. ! Syntactic Sugar 라고도 한다.
Syntactic Sugar : 문법적인 설탕(?) -> 문법적인 기능은 그대로인데 읽는 사람이 더 간결하게 직관적으로 코드를 읽을 수 있게 도와준다 라는 뜻이다.
async function f() {
return 1;
}
function 앞에 async를 붙이면 해당 함수는 항상 promise를 반환한다.
async function f() {
return Promise.resolve(1);
}
f().then(alert); // 1
명시적으로 promise를 반환하는 것과 같으며 결과는 동일하다.
아래에 코드는 async, await 가 쓰인 코드다. NodeJS에서 express로 서버를 열고 DB와 통신을 할 때 내가 작성했던 코드이다 .async await는 이 코드 하나로 다 설명이 가능하다.
const getAllArticles = async (req, res) => {
try {
const client = await mongoClient.connect();
const board = client.db('kdt5').collection('board');
const ARTICLE = await board.find({}).toArray();
res.render('db_board', {
ARTICLE,
articleCounts: ARTICLE.length,
userId: req.session.userId,
});
} catch (err) {
console.error(err);
res.status(500).send(err.message + UNEXPECTED_MSG);
}
};