• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

promise 관련 질문있습니다

23.07.18 22:17 작성 조회수 114

0

interface Post {
  id: number;
  title: string;
  content: string;
}
function fetchPost(): Promise<Post> {
  return new Promise((res, rej) => {
    setTimeout(() => {
      res({
        id: 1,
        title: "게시글 제목",
        content: "게시글 컨텐츠",
      });
    }, 1000);
  });
}
let data = {} as Post;
const postRequest = fetchPost()
postRequest.then((post)=> data = post  );

promise 에 ts적용하는 강의를 보다가 궁금한게 생겼는데 해당 코드와 같이 fetchPost에서 리턴값으로 id,title,content가 있는 object가 반환되는데 그 값을 미리 선언한 변수 data에 넣고싶은데 then에서 어떤식으로 작성해야 적용이될까요?? 위와 같이 data= post는 적용이 안되는거 같더라고요 ㅜㅜ

답변 1

답변을 작성해보세요.

0

안녕하세요 이정환입니다.

질문 주신 방식으로 코드를 작성하셔도 then 메서드 내부에서는 data 변수에 post의 값이 저장됩니다.

그러나 then 메서드 외부에서도 이 결과값을 이용하시고 싶다면 다음과 같이 async/await을 이용하시면 좋습니다.

interface Post {
  id: number;
  title: string;
  content: string;
}
function fetchPost(): Promise<Post> {
  return new Promise((res, rej) => {
    setTimeout(() => {
      res({
        id: 1,
        title: "게시글 제목",
        content: "게시글 컨텐츠",
      });
    }, 1000);
  });
}

(async function () {
  let data = {} as Post;
  data = await fetchPost();
})();