이터러블객체 → [Symbol.iterator]호출 → 이터레이터객체반환 → next메소드호출 → result객체반환
제네레이터
function* counter() {
console.log('첫번째 호출');
yield 'ㅇㅇ'; // 첫번째 호출 시에 이 지점까지 실행된다.
console.log('두번째 호출');
yield 2; // 두번째 호출 시에 이 지점까지 실행된다.
console.log('세번째 호출'); // 세번째 호출 시에 이 지점까지 실행된다.
}
const generatorObj = counter();
console.log(generatorObj.next()); // 첫번째 호출 {value: ㅇㅇ, done: false}
console.log(generatorObj.next()); // 두번째 호출 {value: 2, done: false}
console.log(generatorObj.next()); // 세번째 호출 {value: undefined, done: true}
제너레이터의 활용