2. JavaScript 작업 처리
● JavaScript는 한번에 하나의 작업만 처리한다.
● 오래 걸리는 작업이 진행된다면 끝날 때까지 나머지 작
업은 전부 중단된다.
// 주당이 따로없다.
var i = 0,
beerCargo = document.getElementById( “beerCargo”);
while (Number.MAX_VALUE > i) {
beerCargo.innerHTML += “drink ” + i + “ beer!<br/>”;
i++;
}
13. Promise/A - 흐름
● 비동기 함수를 실행하면 비동기 작업을 작업자에게 맡기고, 약속 객체를 반
환한다.
● 비동기 작업의 후처리 작업을 약속 객체에 등록한다
● 비동기 작업이 종료되면 약속 객체는 작업 Queue 에 자신에게 등록된 작업
을 넣는다
● Event Loop 에서는 작업 Queue를 처리하며 후처리 실행.
18. 약속은 기록된다.
● Promise 객체는 한번 얻고 나면 언제든 재활용할 수 있다.
○ 데이터를 얻어오고 바로 사용할 필요 없이 사용할 시점을 호출자가 정
할 수 있다.
○ 여러 작업의 결과를 변수에 담아두고 재활용이 가능하다.
○ HTML 조각, 동적 스크립트 텍스트, 공통 데이터...
19. Multi Complete
● 유저의 구매 정보를 화면에 표시해야 하는데 유저의 정보는 회원 API로, 구
매 정보는 구매 API로, 상품 정보는 상품 API 로 요청한 뒤 모든 요청이 완
료되면 서로간의 데이터를 잘 섞어서 필요 데이터를 도출하여 화면에 표시
해야 한다.
○ 그런데 각 요청이 언제 끝났는지 체크해볼까?
21. 간단히 표준을 구현해본 예제
● 코드
○ https://github.com/javarouka/javarouka.github.
com/blob/master/javascript/deferred.html
● 페이지
○ http://javarouka.github.io/javascript/deferred.html