seunghyun Note

async await 본문

프로젝트/JS 프로젝트 개념 정리

async await

승숭슝현 2024. 1. 31. 21:10
728x90
반응형

js 공부할 때 항상 제일 어려웠던(사실 모든것을 공부한 것은 아님;;;) 개념 async await.....!!

강의를 듣다가 아래의 코드를 다시 복습하게 됐다.

export const home = async (req, res) => {
  const videos = await Video.find({});
  return res.render("home", { pageTitle: "Home", videos });
};

이 코드에서 사용되는 asyncawait를 이해해보고 싶었다. 

  • async: 이 키워드는 함수를 비동기 함수로 만든다. 즉, 함수 안에서 비동기 작업을 수행할 수 있게 한다.
  • await: 이 키워드는 비동기 작업이 끝날 때까지 기다리는 데 사용된다. 비동기 함수 내에서만 사용될 수 있으며, Promise가 완료되기를 기다린다. 그리고 그 결과를 반환한다.

Video.find({})는 데이터베이스에서 비디오를 찾는 비동기 작업이다. 이 작업은 시간이 걸릴 수 있으므로 await를 사용하여 이 작업이 완료될 때까지 기다린다.

await Video.find({})에서 반환된 결과는 videos 변수에 저장된다.

return res.render("home", { pageTitle: "Home", videos });는 홈 페이지를 렌더링하고, 홈 페이지에는 "Home" 제목과 함께 videos를 전달한다.

이 코드의 흐름은 아래와 같다.

  1. 비동기 함수 home이 실행됩니다.
  2. 데이터베이스에서 모든 비디오를 찾기 위해 Video.find({})를 호출합니다.
  3. 비디오를 찾는 작업이 완료될 때까지 기다립니다(비디오를 찾는 작업은 시간이 걸릴 수 있으므로).
  4. 비디오를 찾은 후, 찾은 비디오들과 함께 "home" 템플릿을 렌더링하여 클라이언트에게 전송합니다.
728x90
반응형

'프로젝트 > JS 프로젝트 개념 정리' 카테고리의 다른 글

res.render(),res.end() - express.js  (0) 2024.01.31