next와 yield의 양방향 대화

제너레이터는 호출 즉시 실행되지 않고, next가 들어올 때마다 다음 yield 지점까지 움직입니다.

first next

첫 호출은 실행 시작

generator.next() 가 함수 본문을 처음 열고 첫 번째 yield까지 진행합니다.

yield out

yield는 밖으로 값 전달

yield 1 은 { value: 1, done: false } 를 반환하고 그 줄에서 멈춥니다.

next input

다음 next 값은 안으로

next(5) 의 5는 멈춰 있던 이전 yield 표현식의 결과가 됩니다.

return

끝나면 done true

return 값은 마지막 value가 되고, 이후 next는 더 이상 새 값을 만들지 않습니다.

핵심next와 yield의 양방향 대화은 각 요소의 관계와 선택 조건을 함께 읽어야 한다.