작성
·
171
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();
})();