본문으로 바로가기

[JS] 제너레이터

category WEB/JS 2019. 1. 13. 16:32

제너레이터


함수블록을 한번에 실행시키지 않고, 일시중지했다가 필요한 시점에 다시 시작할 수 있는 함수.

제너레이터 함수는 제너레이터 객체를 반환한다. 이 제너레이터 객체는 이터러블이자 이터레이터이다.

즉 제너레이터는 이터러블한 값을 생성하는(generate) 함수다.


제너레이터는 이터러블 구현과 비동기 함수의 호출 차단 등에 유용하다.


제너레이터 함수는 function* 함수명 형태로 선언한다.

그리고 그 안에는 하나 이상의 yield 구문을 포함한다.


제너레이터 함수의 함수 블록을 실행하려면 제네레이터 함수가 생성한 제너레이터 객체의 next 메소드를 호출한다.

(제너레이터 객체는 이터레이터이기 때문에 next 메소드를 가지고 있다.)

next 메소드가 호출되면 yield 이전까지 실행하고 실행을 일시 중지한다. 이를 반복한다.


next() -> yield -> next() -> yield


ES6의 제너레이터를 사용한 비동기 프로그래밍

'WEB > JS' 카테고리의 다른 글

리액트 - 서버사이드 렌더링(SSR)  (0) 2019.01.16
리액트 - 고차 컴포넌트(HOC)  (0) 2019.01.15
[JS] 이터러블과 이터레이터  (0) 2019.01.13
[JS] 클로저(Closure)  (0) 2019.01.10
[JS] 실행 컨텍스트  (0) 2019.01.09