코드를 비동기로 실행하고 싶어요

조회수 52회

안녕하세요

데이터베이스에서 데이터를 찾아서 담아주고, json 형태로 응답을 하고 싶은데

데이터를 찾아서 담기도 전에 json응답이 실행 되는데 어디에await 을 사용하면 데이터를 찾고나서 응답을 할까요?

중간에 map 함수때문에 너무 어렵네요 ㅜ

원래는 함수로 만들지 않고 바로 사용 했는데 await은 함수 앞에 사용한다고해서 따로 만들어 줬습니다. 도와주세요..

응답을 하고 나서 데이터는 잘 찾아집니다.. 어떻게 변형 하면 될까요?

// 게시물 조회
router.get("/", async (req, res) => {
  const datas = await Post.findAll(
    { order: [["createdAt", "DESC"]] }
  );

  function findLike() {
    datas.map(async (e) => {
      const likeCount = await Like.findAll({ where: { postId: e.postId } });
      e.likes = likeCount.length;
    });
  }

  function response() {
    res.json({
      data: datas.map((e) => {
        return {
          postId: e.postId,
          userId: e.userId,
          nickname: e.nickname,
          title: e.title,
          createdAt: e.createdAt,
          updatedAt: e.updatedAt,
          likes: e.likes,
        };
      }),
    });
  }

  await findLike();
  await response();
});

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.