첫 호출은 실행 시작
generator.next()가 함수 본문을 처음 열고 첫 번째
yield까지 진행합니다.
generator handshake
제너레이터는 호출 즉시 실행되지 않고, next가 들어올 때마다 다음 yield 지점까지 움직입니다.
generator.next()가 함수 본문을 처음 열고 첫 번째
yield까지 진행합니다.
yield 1은 { value: 1, done: false }를
반환하고 그 줄에서 멈춥니다.
next(5)의 5는 멈춰 있던 이전 yield 표현식의 결과가
됩니다.
return 값은 마지막 value가 되고, 이후 next는 더 이상 새 값을 만들지 않습니다.