나의 개발 성장일지
모든원인은 비동기처리를 못해서 본문
문제점
1. 비동기를 어떻게 처리해야할지 깊게 고민해본적이없다
2.둘다 비동기일땐 어떻게 처리해야하는지 정리를 안하니까 계속 걸려넘어진다.
3.비동기vs동기 비동기vs동기 2가지를 정리하고가야한다.
4.실행순서를 깊게 고민해본적이없다 알아서 되겠지라는 안일한생각을 갖고있었음
[React] 비동기 작업(콜백 함수, Promise, async, await)
웹 애플리케이션을 만들다 보면 처리할 때 시간이 걸리는 작업이 있다. 예를 들어 웹 애플리케이션에서 서버 쪽 데이터가 필요할 때는 ajax 기법을 사용하여 서버의 API를 호출하여 데이터를 수신
bum-developer.tistory.com
2.js의 특성
1. 자바스크립트는 싱글쓰레드->한번에 1개코드만가능
2.스택은 무조건 즉발실행하는곳만 존재함-> 스택내에서 시간걸리는건 모두 큐로 1차대기큐로 치워버림
3.콜백함수

4.promise ->콜백함수+성공실패 여부




4-1 then->성공적으로되었을때 실행해주세요
4-2 catch-> 실패했을때 실행해주세요
4-3 finally-> 성공이든 실패든 실행해주세요
5. async/await ->성공만 판정가능->그냥 콜백대신에쓰는것-
5-1 프로미스의 값을 받아와서 결과변수에 넣어야하는상황
5-2 함수에 async를 붙이면 promise객체로 만들어주고 .then을 사용가능
6.js코드해석
6-1 전역변수 var에 이미지로딩 변수이름을 정한다
6-2 프로미스객체를 생성한다
6-3 프로미스객체 파라미터안에 콜백함수를넣어 객체생성->바로 function을 실행한다
6-4 function에 img변수를 선언하고 dom에 #test태그를 선택한다.
6-5 태그에 이벤트리스너를 부착하고 이미지가 제대로 로드되었으면 성공을 반환하는 함수를 출력시킨다.
6-6 여기서도 콜백함수가 사용된다.

7.코드해석
7-1 async를 function에 붙인다-> 프로미스객체를 반환하되 성공했을때만 가능하도록 한다.
7-2 프로미스객체이므로 .then사용가능하다
7-3 p2의 함수가 잘실행되면 hello를 출력하고 그뒤에 콘솔에 출력해주는코드다

8.코드해석
8-1 더하기 함수에 async를 선언한다-> 프로미스 객체를 반환한다는 뜻이다
8-2 프로미스객체란 가장 먼저실행해야 하는 함수를 정의하는 객체 이며 성공,실패 두가지 파라미터에 따라 다르게 반환가능하다..then내장함수를 사용가능하다
8-3 프로미스가실행된후 결과변수에 넣으라고 명령하려면 await로 너가 2번쨰실행이라는걸 알려준다.

'개인 프로젝트 > 쇼핑몰 만드는 과정' 카테고리의 다른 글
| 상품관리)비동기제어 해결한거 정리하기!!!!!!!!!!!!! (0) | 2023.01.01 |
|---|---|
| itemmanage페이지에 비동기제어 하기위한 생각 (0) | 2023.01.01 |
| itemmanage에서 삭제시 바로 적용시키기 (0) | 2022.12.31 |
| 함수형 컴포넌트 생성주기 (0) | 2022.12.31 |
| ***리액트에서 가장 중요한것 (0) | 2022.12.31 |