더북(TheBook)

코드는 다음과 같습니다.

range(1, Number.POSITIVE_INFINITY).slice(0, 5); //-> 브라우저 중지

자바스크립트의 즉시 평가를 사용하면 이 코드는 무한히(또는 메모리가 부족하여 종료할 때까지) 숫자를 생성해야 하므로 range() 함수를 결코 벗어나지 못합니다. 다시 말해, 즉시 평가는 다음 단계로 넘어가기 전에 표현식의 각 부분을 완전히 실행하는 것을 의미합니다. 반면에 자바스크립트 함수가 지연 평가할 경우, 이 코드는 그림 3-2처럼 처음 5개 요소만 생성하면 됩니다.

▲ 그림 3-2 지연 할당 방식에서 런타임은 해당 표현식의 결과가 필요할 때까지 기다렸다가 실행만 하고 요청한 만큼의 리소스만 할당한다.

 

이 경우에 표현식의 전체 계산은 표현식의 결과가 필요할 때까지 기다립니다. 즉, RxJS의 전략은 구독자가 옵저버블 표현식을 구독할 때까지 기다렸다가 필요한 데이터 구조를 초기화하기 시작하는 것입니다. 뒤에서 RxJS가 지연 평가로 내부 데이터 구조를 최적화하고 재사용할 수 있다는 사실을 알 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.