일반
동기 / 비동기처리와 콜백함수
알 수 없는 사용자
2023. 9. 21. 16:37
SMALL
Q. js 병렬처리 가능?
A. js언어자체는 한번에 코드 한줄씩 차례로 실행됨
동기식처리(Synchronous)
- 그냥 js는 오래걸리는 연산 만나면 멈춤
- 한번에 코드 한줄씩 차례로 실행
비동기식처리(Asynchronous)
- Web API와 연관된 특수한 함수들을 쓰면 작업이 오래걸릴 때, 다른거부터 실행가능
- 오래걸리는 작업이 있으면 제끼고 다른거부터 처리하는 방식 ( js가 아니라 js를 실행하는 브라우저 덕분에 가능 )
ex) setTimeout, 이벤트리스너, ajax
콜백함수
- js를 순차적으로 실행하려면 콜백함수를 사용
- 함수안에 들어가는 함수
- 함수 디자인 패턴일 뿐 (비동기, 동기를 보장하는 건 아님)
- 문제점
- 여러 개 만들면 코드가 어렵고 복잡해짐 (옆으로 길어짐)
- 쉽게 쓰기 위해 Promise 패턴이 있음 (옆으로 길어지진 않음)
LIST