웹/React

async, await

wonin 2022. 1. 14. 10:39

fetch

일단 fetch부터 살펴봐야 합니다.

 

fetch("url")을 넣으면 요청을 보냅니다.

response을 fetch().then()으로 다룰 수 있습니다.

 

useEffect(() => {
    fetch("https://api.coinpaprika.com/v1/tickers")
      .then((response) => response.json())
      .then((json) => {
        setCoins(json);
        setLoading(false);
      });
}, []);

then()안에 () => {} 형태로 람다 함수를 집어넣을 수 있는거 같습니다.

then()을 대채하려는게 async, await인듯 합니다. 비동기 처리및 콜백함수라고 하는데 요청이 들어왔을 때 실행된다! 라는 함수입니다.

fetch로 문자들이 response에 들어오면 json()으로 변환해라!
json이 들어오면 setCoins()에 json을 넣고 setLoading(false)를 실행시켜라!

then이 주는 의미는 이거 입니다.

 

async, await

const getMovies = async () => {
    const response = await fetch(
      `https://yts.mx/api/v2/list_movies.json?minimum_rating=9&sort_by=year`
    );
    const json = await response.json();
    setMovies(json.data.movies);
    setLoading(false);
  };
 useEffect(() => {
   getMovies();
 }, []);

만약 async, await를 사용하면 

async는 예약어 입니다.

await는 비동기 처리 메서드 입니다. 반드시 객체를 반환해야 합니다.

비동기 호출(async)이 들어오면 await를 실행해주세요~
그리고 await 너는 프로미스 객체(자바스크립트 비동기 처리를 위한 객체)를 반환해줘~

 

참고자료

https://joshua1988.github.io/web-development/javascript/js-async-await/

 

728x90