Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- code .
- angular5
- zsh
- Sentry
- angular
- sealize
- getElementsByClassName
- Git
- change detection
- 이미지바꾸기
- rxjs
- fromEvent
- Visual Studio Code
- error
- Ionic
- oh-my-zsh
- border-width
- ChangeDetectorRef
- 변화감지
- php
- 자바스크립개념
- 테두리굵기
- aab 배포
- JavaScript
- VSCode
- hashchange
- NVM
- typescript
- ion-range
- IONIC3
Archives
- Today
- Total
hsunny study blog
자바스크립트는 비동기를 왜 사용할까? 본문
자바스크립트의 작업
자바스크립트는 기본적으로 하나의 메인 스레드에서 모든 작업이 실행된다.
자바스크립트 엔진이 단일 호출 스택을 사용한다.
이 말은 어떤 작업의 비용이 크거나 대기 시간이 긴 경우에는 애플리케이션 자체가 멈출 수 있다는 말이기도 하다.
비동기 작업을 함으로써 하나의 메인 스레드가 계속 점유하지 않도록 한다.
Rx 스케쥴러
-
프로그래밍 언어의 스케줄러를 효과적으로 사용할 수 있도록 만든 가상의 스케줄러
-
(in RxJS) 자바스크립트의 스케줄러가 하는 일을 RxJS에서 효과적으로 처리하기 위해서 만든 가상의 스케줄러
-
동기, 비동기 또는 데이터 전달 주기 등을 제어하기 위해서 사용된다.
-
태스크 (매크로 태스크)
-
setTimeout, setInterval 등과 같은 callback 함수는 태스크 큐에 추가된다.
-
호출 스택이 빌 때마다 큐에서 호출 콜백 함수를 꺼내와서 실행한다.
-
마이크로 태스크
-
Promise와 같은 작업은 마이크로 태스크 큐에 추가된다.
-
태스크보다 마이크로 태스크의 우선순위가 높다.
-
마이크로 태스크가 계속해서 실행될 경우 일반 태스크인 UI 렌더링이 지연되는 현상이 발생할 수 있다.
-
참조 사이트 & 서적
-
RxJS QuickStart - http://www.yes24.com/Product/goods/62601794
-
자바스크립트와 이벤트 루프 - https://meetup.toast.com/posts/89
'programming > javascript' 카테고리의 다른 글
hashChange (0) | 2019.07.20 |
---|---|
배열의 요소를 하나의 문자열로 만들기 (0) | 2019.07.12 |
querySelector vs querySelectorAll vs getElementsByClassName (0) | 2019.06.25 |
sort()를 이용한 정렬 (0) | 2019.06.17 |
배열 중복 요소 제거 (0) | 2019.06.17 |