티스토리 뷰
Javascript/[JS&Node] 비동기
리액트에서 fetch로 영화데이터 불러오기 비동기처리 promise/ async await 사용
이채야채 2021. 11. 28. 14:00
영화 데이터를 불러오는 쌩 fetch(ajax)로 불러올때
ajax = 비동기통신으로 데이터를 주고받는 기술인 AJAX(서버에 새로고침없이 요청을 할수있게 도와준다. AJAX를 쓰기위해 리액트를 씀. 리액트는 일종의 도구 )
둘은 같은 작업을 하는 코드다.
사용법을 익혀보자.
1. 프로미스로 then을 받은경우
useEffect(()=>{
fetch(`https://yts.mx/api/v2/list_movies.json?minimum_rating=8.8&sort_by=year`)
.then((res)=>res.json())
.then((json) => {
setMovies(json.data.movies)
setLoading(false)
})
},[])
2. async await 사용시
async() => {
const response = await fetch(`https://yts.mx/api/v2/list_movies.json?minimum_rating=8.8&sort_by=year`)
const json = await response.json()
setMovies(json.data.movies)
setLoading(false)
3. async 변수 사용을 더 줄이고싶을때 (2번의 짧은버전)
aync()=>{
const json = await(
await fetch(`https://yts.mx/api/v2/list_movies.json?minimum_rating=8.8&sort_by=year`)
).json()
setMovies(json.data.movies)
setLoading(false)
}
const getMovies = async() => {
const response = await fetch(`https://yts.mx/api/v2/list_movies.json?minimum_rating=8.8&sort_by=year`)
const json = await response.json()
setMovies(json.data.movies)
setLoading(false)
}
useEffect( ()=>{
getMovies()
}
,[])
'Javascript > [JS&Node] 비동기' 카테고리의 다른 글
fetch사용시 유의 사항 (json() 함수 사용 <= 이건뭐냐고요? response.json() 프로미스객체서 사용), 과제 다시 풀어보기 (0) | 2021.12.02 |
---|---|
Node JS 모듈 , fs readfile 모듈을 사용하여 과제를 풀어보자. (0) | 2021.12.01 |
async/await (0) | 2021.11.16 |
Promise (0) | 2021.11.16 |
동기/비동기 (0) | 2021.11.16 |