728x90
반응형
1. 오늘 만난 에러
1. 비동기/동기의 활용하고싶음
- JS코드는 비동기 + 동기가 있을때 동기부터 실행됨
- 비동기 코드를 먼저 사용하기 위해서 사용하는 것 : async + await
- async function() { const result = await fecth(~~~)를 활용하기
2. 인자와 매개변수의 혼란
- function add(매개변수) { return 1;} //매개변수: 문지기
- add(인자) // 인자 : 손님
2. 접근방식
1. async function() {
// 여기는 비동기 방식만 사용하는 줄 알았음
//(1) 필요한 데이터 (외부에서 가져오는 데이터 = fetch)만 비동기로 사용
//(2) 그 후에 함수는 동기방식으로 사용하기 가능
}
- 함수를 쓰고 후에 함수를 호출해서 사용 => 즉시실행함수로 변경 : ( function() {} ) ();
3. 해결 실마리 찾기 & 해결
- 비동기 방식인 fetch를 async + await 를 활용하여 동기방식보다 먼저 실행되고 진행되도록 설계
//async + await
//fetch는 외부요청이니깐. 시간이 걸릴 수 밖에 없음.
//await : fetch답장 올때까지 무조건 기달려.
[JS기존 코드]
fetch(
options
)
.then((response) => response.json())
.then((response) => {
data = response.results;
drawCard(data);
})
.catch((err) => console.error(err));
[ JS 변경 코드]
let data = {};
//즉시실행함수
(async function () {
try {
//데이터 가져오기
const result1 = await fetch(
options
).then((response) => response.json()); //response: fetch 결과
data = result1.results;
drawCard(result1.results);
displayShow();
review();
} catch (error) {
console.error(error);
}
})();
반응형
'TIL :: Today I Learned' 카테고리의 다른 글
#01 리액트 입문 :: App.js에서 JSX 실습 (컴포넌트) (0) | 2023.10.31 |
---|---|
개인과제 (#1 영화 TOP 20 검색 사이트 구현 ) 피드백 개선점 반영 (0) | 2023.10.30 |
Fetch API 데이터로 정렬 (평점순 / 제목순 / 개봉일순) (0) | 2023.10.26 |
[보충] 함수 / 배열 (0) | 2023.10.25 |
깃허브로 협업하기 (1) | 2023.10.24 |