seunghyun Note
async await 본문
728x90
반응형
js 공부할 때 항상 제일 어려웠던(사실 모든것을 공부한 것은 아님;;;) 개념 async await
.....!!
강의를 듣다가 아래의 코드를 다시 복습하게 됐다.
export const home = async (req, res) => {
const videos = await Video.find({});
return res.render("home", { pageTitle: "Home", videos });
};
이 코드에서 사용되는 async
와 await
를 이해해보고 싶었다.
- async: 이 키워드는 함수를 비동기 함수로 만든다. 즉, 함수 안에서 비동기 작업을 수행할 수 있게 한다.
- await: 이 키워드는 비동기 작업이 끝날 때까지 기다리는 데 사용된다. 비동기 함수 내에서만 사용될 수 있으며, Promise가 완료되기를 기다린다. 그리고 그 결과를 반환한다.
Video.find({})
는 데이터베이스에서 비디오를 찾는 비동기 작업이다. 이 작업은 시간이 걸릴 수 있으므로 await를 사용하여 이 작업이 완료될 때까지 기다린다.
await Video.find({})
에서 반환된 결과는 videos 변수에 저장된다.
return res.render("home", { pageTitle: "Home", videos });
는 홈 페이지를 렌더링하고, 홈 페이지에는 "Home" 제목과 함께 videos를 전달한다.
이 코드의 흐름은 아래와 같다.
- 비동기 함수 home이 실행됩니다.
- 데이터베이스에서 모든 비디오를 찾기 위해 Video.find({})를 호출합니다.
- 비디오를 찾는 작업이 완료될 때까지 기다립니다(비디오를 찾는 작업은 시간이 걸릴 수 있으므로).
- 비디오를 찾은 후, 찾은 비디오들과 함께 "home" 템플릿을 렌더링하여 클라이언트에게 전송합니다.
728x90
반응형
'프로젝트 > JS 프로젝트 개념 정리' 카테고리의 다른 글
res.render(),res.end() - express.js (0) | 2024.01.31 |
---|