fetchAPI 의사코드
2023. 1. 19. 20:59ㆍ기타
const newsURL = 'http://localhost:4999/data/latestNews';
const weatherURL = 'http://localhost:4999/data/weather';
function getNewsAndWeather() {
// 체이닝의 결과가 Promise 형태로 리턴되어야 합니다
// fetch 두번 사용해야한다
// 불러온 api의 결과값을 합쳐 새로운 객체로 리턴해야한다
// promise all / async 사용 하지 않아야한다.
const dailynews = {}
return fetch(newsURL) // fetch도 프로미즈 객체를 리턴한다.
.then(res => res.json()) // 프로미즈 객체 안에 리스폰에 접근해서 정보를 json으로 만들어준다.
.then(newsjson => { //than으로 json을 체이닝을 통해 받아온다.
dailynews.news = newsjson.data // 객체 dailynews의 프로퍼티 news에 받아온 정보의 data프로퍼티 안에 값을 할당한다.
return fetch(weatherURL)
})
.then(res => res.json())// 프로미즈 객체 안에 리스폰에 접근해서 정보를 json으로 만들어준다.
.then(weatherjson =>{//than으로 json을 체이닝을 통해 받아온다.
dailynews.weather = weatherjson // 객체 dailynews의 프로퍼티 news에 받아온 정보를 값으로 할당한다.
return dailynews;
})
}
if (typeof window === 'undefined') {
module.exports = {
getNewsAndWeather
}
}
async function getNewsAndWeatherAll() {
// TODO: Promise.all을 이용해 작성합니다
let dailynews = {} // 날씨와 뉴스를 합친 정보를 담을 객체
let newsdata = fetch('http://localhost:4999/data/latestNews')
.then(res => res.json()) // 뉴스정보를 받아와 json형태로 반환
let weatherdata = fetch('http://localhost:4999/data/weather')
.then(res => res.json())// 날씨정보를 받아와 json형태로 반환
return Promise.all([
newsdata, weatherdata]) // 프로미즈들을 동시에 실행해줌
.then((news)=> { // 실행하여 가져 온 정보들을 then으로 받아온다.
dailynews.news = news[0].data // news의 0번째 인덱스의 data프로퍼티 값을 dailynews.news에 할당한다.
dailynews.weather = news[1] // news의 1번째 인덱스의값을 dailynews.weather에 할당한다.
return dailynews // 객체를 리턴한다.
})
}
if (typeof window === 'undefined') {
module.exports = {
getNewsAndWeatherAll
}
}
async function getNewsAndWeatherAsync() {
// TODO: async/await 키워드를 이용해 작성합니다
let dailynews = {} // 날씨와 뉴스를 합친 정보를 담을 객체
let newsdata = await fetch('http://localhost:4999/data/latestNews') // await 으로 바로 json파일에서 정보를 꺼내온다.
.then(res => res.json()) // 뉴스정보를 받아와 json형태로 변환
dailynews.news = newsdata.data// json형태의 뉴스정보를 dailynews.weather로 할당
let weatherdata = await fetch('http://localhost:4999/data/weather')// await 으로 바로 json파일에서 정보를 꺼내온다.
.then(res => res.json())// 날씨정보를 받아와 json형태로 변환
dailynews.weather = weatherdata // json형태의 날씨정보를 dailynews.weather로 할당
return dailynews // 객체반환
}
if (typeof window === 'undefined') {
module.exports = {
getNewsAndWeatherAsync
}
}
//프로미즈 객체안에는 리스폰스가있다.
'기타' 카테고리의 다른 글
코드스테이츠 섹션3 기술면접 예상질문 (0) | 2023.03.13 |
---|---|
코드스테이츠 섹션2 기술면접 예상질문 (0) | 2023.02.10 |
property 'addEventListener' of null 에러 (0) | 2023.02.10 |
[반딧불반]beesbeesbees 의사코드 작성 과제물 (0) | 2023.01.16 |
삼항연산자 (0) | 2023.01.11 |