Javascript
Async/Await
농담농담
2022. 9. 4. 16:02
Async Await은 프로젝트 하면서 수없이 써본것 같다.
대부분 함수 내에서 DB에 어떤 요청을 하는 코드에서 썼다. DB에 요청하고 그 처리가 완료될때까지 대기 후 결과를 받아야 하기 때문이다.
async function showWorkSpaces(req, res) {
try {
const workSpaceList = await workSpace.find({});
return res.status(200).json(
workSpaceList
);
} catch (err) {
return res
.status(400)
.json({ success: false, message: "전체 워크스페이스 조회 실패" });
}
}
Async는 그냥 함수 앞에 붙여주면 된다. 뭔가 기능을 선언해주는 느낌으로 ?
await 에러가 나면 코드실행을 멈춘다. await 하단에 있는 코드들은 더 이상 실행이 되지 않기 때문에 이를 해결하기 위해
try catch라는 자바스크립트 문법인데, try {} 안의 코드가 에러가 나고 멈출 경우 대신 catch {} 내부의 코드를 실행한다.
async/await 구문은 Promise 객체를 다루는 코드(Promise Chaining 코드 등)를 사람들이 좀더 익숙하게 느끼는 동기 실행 스타일의 코드로 작성할 수 있게 해주는 Syntactic sugar 이다.
async 함수 안의 내용이 순차적으로 실행되다가도, await 문을 만나면 await 바로 뒤에 붙은 코드를 실행해두고, 일단은 함수 바깥으로 코드 흐름이 바뀐다.