값을 나눠 만든다
전체 배열을 먼저 만들지 않고 필요한 값만 yield합니다.
핵심은 실행을 멈출 수 있는 생산자와 next 또는 for await로 값을 당겨오는 소비자를 분리해, 흐름 제어를 코드 구조 안에 드러내는 것입니다.
전체 배열을 먼저 만들지 않고 필요한 값만 yield합니다.
next 호출이 다음 yield 지점까지 실행을 밀어 줍니다.
지역 변수와 위치가 유지되어 이어서 계산할 수 있습니다.
return, throw, finally로 완료와 정리 경계를 드러냅니다.
yield 값과 return 값, next 입력값을 섞지 않으면 제너레이터의 중단점이 타입으로도 읽힙니다.