[프론트엔드 데브코스 TIL] 2023.12.11 Day60 React 6일차

SoJuSo·2023년 12월 11일
0

2023.09 ~ 2024.01 TIL

목록 보기
69/105

📚금일 학습 내용

강의 정리 시작..!

강의 수강, 미니 게임 천국, TS 리뷰 등등..

❗return Promise < Pending >

문제점

모듈로 선언한 파일에서 fetch된 데이터를 return하는 경우 data 객체가 아닌 Promise < pending > 이 출력되는 현상이 있었다.

원인

스택 오버플로우에는 선배 개발자들의 발자취가 엄청나게 많다.
https://stackoverflow.com/questions/38884522/why-is-my-asynchronous-function-returning-promise-pending-instead-of-a-val

물론 벨로그에도 그렇다
https://velog.io/@sarifor/0010

간단하게 블로그에서 원인을 인용하자면, async가 붙은 함수는, return 값이 Promise가 아니더라도 Promise화 해준다. 가 원인이였다. 즉 아직 처리중인, Pending 중인 값을 가져오게 되는 문제가 있었다.

해결

따라서 불러올때도 처리가 다 완료된 값을 가져와야 하므로 API를 fetch하는 함수 뿐만 아니라, 그 함수를 불러올때도 async await을 통한 비동기 처리를 해주어야했다. 요런식으로 감싸서 해결해줬다.

(async () => {
  try {
    fetchedData = await getDataFromFireBase();
    console.log(fetchedData);
  } catch (error) {
    console.error(error);
  }
})();

📖소회

때론 오늘 같이 내가 뭘 했지? 기억이 안나는 날이면 크롬의 방문 기능을 이용하도록 하자. 반성 + 회고를 동시에 느낄 수 있다.

지금, 아니 요즘 상태는 인지적 에너지가 많이 떨어졌다. 그래서 그런지 집중을 오래 하기 쉽지 않고 설령 집중을 한다 해도 그 집중의 상태를 오래 유지하지 못하거나 집중 후 더 오랜 기간을 쉬어주어야 한다. 음... 그래서 일단은 내가 하고 싶은 코딩을 하고 있다. 혼자 이것저것 배웠던거 뚝딱뚝딱 만들어보기도 하고(물론 잘 안된다) 오픈소스 라이브러리 유령이 되기도 하고... CS 지식 관련해서 검색 유령이 되기도 한다.

내일은 오프라인.. 기분 전환 잘 하고 오도록!🔥🔥🔥

TIL 작성 소요 시간 약 20분

profile
Junior Frontend Engineer

0개의 댓글