티스토리 뷰
개념설명은 많이해주는데 정확히 왜 쓰는건지를 왜 다들 말 안해주는거야...
동기 비동기에대해서는 배워서 개념도알고
콜백 => 프로미스 => async await를 쓰는 문법같은것도 알겠는데...
왜쓰고있는가를 잘 이해하지 못하고. 이번 스프린트를 하면서 왜자꾸쓰는거
???? 갈고리가 강해져서 열심히 구글링을 해봤다.
비동기 프로그래밍이란!
자바스크립트는 아시다시피 싱글스레드에서 동작 = 한번에 한가지일만함!
멀티안되는 놈 = 자바스크립트
비동기 = 작업이 오래걸릴때 다른것부터 실행이 가능한거
이 자바스크립트에서 특수함수들을 오래걸려서 api..set time out 등등 비동기처리가되버림
====>브라우저 작동원리땜시
CALL BACK? 왜쓰는건데
다른함수가 실행이 끝나면 그때 실행되는 함수 얌! 콜백~~ 다시불러달라고~!!

아니 그래서... 비동기 동기에 맨날 콜백나오는데 콜백이 왜필요하냐고..
자바스크립트가 이벤트 기반 언어여서 그렇단다.
자바스크립트는 다음 명령어를 실행하기 전, 이전 명령어의 응답을 기다린다기 보다, 다른 이벤트를 계속해서 실행
이게 이벤트루프랑 좀 관련이있다. (아래참고)
https://developeritchaeyachae.tistory.com/42
[자료구조]stack & queue (브라우저 동작원리),event loop
자료구조공부에 앞서 브라우저의 동작원리를 알아두면 좋을것같아서 정리한다. 브라우저 이놈들...컴퓨터놈들...사고방식 자체가 우리와는 다릅니다. ㅠㅠ 웹브라우저? 자바스크립트 코드짠거
developeritchaeyachae.tistory.com
특수함수(시간오래걸리는거) 대기실안에다가 넣어버린다.
이벤트는 대기실로가버리고 스택이 비워질때까지 계속기다린다.
글구 다른거 계속해서 처리처리
이벤트루프가 콜스택이 비워지면? 하나씩 올려보낸다.
근데 콜백을 사용하면? 특정 코드가 끝나기 전까지는 다른 코드가 실행되지 않는다.
근데 이런 콜백,프로미스,async await이 언제 많이쓰이냐면 API를 호출할때 많이쓰인다. API호출 서버파트를 배우면서 많이쓸거다.
정보요청하고 막 그런거할때 ㅋㅋㅋㅋ
API에 request를 보내면, response 값을 받을 때까지 기다려야 하기 때문에!!! async await 같은걸 쓰는거다.
=> 결과를 받고 다음걸 해야지 결과받기전에 막 처리해버리면? 에러 발생
그니까 이것들은 비동기의 문제점을 눌러주려고 쓰는것..동기적으로 차근히 실행해주셈!!
콜백 보단 프로미스가 예쁘고 그것보단 async await이 더 편해서 쓰지만
promise all같이 한번에 여러개를 처리가능하게해주는 경우도있어서 때에따라 다르게 사용해야된다
'Javascript > [JS&Node] 비동기' 카테고리의 다른 글
Node.js / 웹브라우저 ? 섹션2 지금까지 FLOW정리 : 동작원리!!! (0) | 2021.12.05 |
---|---|
fetch사용시 유의 사항 (json() 함수 사용 <= 이건뭐냐고요? response.json() 프로미스객체서 사용), 과제 다시 풀어보기 (0) | 2021.12.02 |
Node JS 모듈 , fs readfile 모듈을 사용하여 과제를 풀어보자. (0) | 2021.12.01 |
리액트에서 fetch로 영화데이터 불러오기 비동기처리 promise/ async await 사용 (0) | 2021.11.28 |
async/await (0) | 2021.11.16 |