Choose a default theme

You can change your theme from the menu

JavaScript 제너레이터

JavaScript 제너레이터는 실행을 멈추었다가 재개하면서 값을 순차적으로 내보내는 함수 형태이다.

원리

function*로 정의하고 yield로 값을 전달한다. 호출하면 제너레이터 객체를 얻으며 next가 실행을 진행해 value와 done 정보를 반환한다.

예시

숫자 구간이나 계산 과정을 필요할 때 한 단계씩 생성해 소비할 수 있다. 여러 번 호출해 만든 객체는 각각 독립된 실행 상태를 가진다.

주의할 점

제너레이터 자체가 비동기 입출력을 자동 처리하는 것은 아니다. 일반 제너레이터와 비동기 제너레이터를 구분하고 종료·예외 전달과 소비 중단 시 자원 정리를 고려한다.

참고 자료