함수를 호출해도 본문은 아직 실행되지 않고 이터레이터 객체가 반환된다.
function*GENERATOR
제너레이터는 함수를 한 번에 끝내지 않고 yield 지점마다 멈췄다 재개한다
function* 호출은 함수 실행이 아니라 제너레이터 객체 생성이며, next()가 실행 흐름을 앞으로 보낸다.
yield 값을 호출자에게 넘기고 함수 내부 상태를 그대로 보존한다.
yieldnext(value)가 이전 yield 표현식의 결과가 되어 다음 지점까지 실행한다.
next()return에 도달하면 done이 true가 되고 이후 next는 더 진행하지 않는다.
done:true
타입 기준: Generator<YieldType, ReturnType, NextType>은
yield 값, 최종 반환값, next 입력값을 분리해서 표현한다.