[Javascript] 제너레이터
제너레이터는 일종의 스택 기반 코루틴을 제공하는 기능이다.
제너레이터 함수는 언제든 실행 위치를 기억한 채로 반환할 수 있으며, 재호출시 기억한 위치로 재진입할 수 있다.
ES 2015부터 표준에 들어왔다.
간단한 카운팅용 제너레이터를 구현하는 것으로 그 사용법과 구조를 가볍게 살펴보도록 하겠다.
먼저, 제너레이터 함수는 function* 키워드로 선언되어야 한다. 그럼 해당 함수는 자동으로 Generator 객체를 생성해 반환한다.
그리고 제너레이터에서의 반환동작은 return 대신 yield를 사용한다. return을 쓰면 함수가 완전히 끝나버리지만, yield는 함수를 정지한 상태로 반환만 한다.

이러면 카운트값을 순서대로 무한히 반환하는 제너레이터를 생성하게 될 것이다.
그리고 제너레이터 객체로 저장된 함수를 실행하려면, next 메서드를 사용하면 된다.

그럼 yield 반환값을 오브젝트로 감싸서 반환한다.
value가 반환값이고, done은 해당 함수가 종료됐는지 여부를 나타낸다.


함수를 완전히 종료시키면서 값도 반환하고 싶다면, 하던대로 return을 사용하면 된다.


그렇다.
참조
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Generator
https://wonism.github.io/javascript-generator/