Part III - fetch API # 3

이건우·2021년 4월 27일
0

Asynchronous & Promise

목록 보기
13/13

문제

  • 'async 키워드를 사용한 함수는 AsyncFunction의 인스턴스입니다'
  • '/data/latest 의 응답 내용과 /data/weather 응답 내용을 합쳐 새로운 객체로 리턴되어야 합니다'
  • 'async/await을 활용하세요. 총 두 번 사용해야 합니다'

내 접근

이 것을 참고한점 , 그리고 전에 풀었던 앞전의 프로미스.all과 part2의 용법을 보고 참고하여 작성하였다.

코드의 결과

async function getNewsAndWeatherAsync() {
  // TODO: async/await 키워드를 이용해 작성합니다
	let obj = {};
  const a = await fetch(newsURL).then(data => data.json())
  const b = await fetch(weatherURL).then(data => data.json())

}

딱 이부분 까지 작성하였고 나머지부분은 페어님에게 의견을 구했다.

정확한 코드

async function getNewsAndWeatherAsync() {
  // TODO: async/await 키워드를 이용해 작성합니다

  const a = await fetch(newsURL).then(data => data.json())
  const b = await fetch(weatherURL).then(data => data.json())
  return {news:a.data,weather:b}
}

내가 이렇게 생각하지못했던 이유는 일단 앞전 문제처럼 obj를 꼭 리턴해줘야 한단 마음이 강했고,
그리고 그 obj 를 어떻게 다뤄줘야할지, 잘 감이 오질않아 페어님에게 의견을 구하였다.

그러더니 페어님이 보실땐 굳이 빈객체를 새로 만들어서 구해줘야하는것이 아닌 링크를 열고 들어가 구조를 파악해보니 {"data":[{"row_id":2, ...}] 이런 구조였다. 그리고 body.json() 이되어, 스트링 타입이 풀리게되고 객체가 될터인데 , 테케를 참고하여 news와 weather를 적고
원하는 값들을 넣어줬다.

데이터 구조를 잘보고, 작은 비슷한 환경의 예시를 만들어 무엇을 불러낼수있을지 잘 생각해봐야겠다.

profile
내가 느낌만알고 한줄도 설명할줄 모른다면 '모르는 것'이다.

0개의 댓글