https://ko.javascript.info/generators
일반 함수는 한의 값만을 반환합니다.
하지만 제너레이터를 사용하면 여러 개의 값을 필요에 따라 하나씩 반환할 수 있습니다. (yield)
function* generateSequence() {
yield 1;
yield 2;
return 3;
}
// '제너레이터 함수'는 '제너레이터 객체'를 생성합니다.
let generator = generateSequence();
alert(generator); // [object Generator]
next는 제너레이터의 주요 메서드입니다.
next를 호출하면 가장 가까운 yield <value>문을 만날 때까지 실행이 지속됩니다.
이후 만나면 실행이 멈추고 산출하고자 하는 값인 value가 바깥 코드에 반환됩니다.
next는 value와 done 프로퍼티를 가진 객체를 반환합니다.