제네레이터 란 이터레이터 객체를 반환하는 함수이다.
const friends = ["1","2","3"];
function* friendTeller(){
for(const friend of friends){
yield friend;
}
}
const teller = friendTeller();
console.log(teller.next()) //{value: '1', done: false}
console.log(teller.next()) //{value: '2', done: false}
console.log(teller.next()) //{value: '3', done: false}
console.log(teller.next()) //{value: undefined, done: true}
function 뒤에 * 을 추가하면 제너레이터 함수라는 의미이다.
모든 값을 리턴하지 않고 next()가 호출 될 때까지 실행을 멈춘다.
제너레이터 함수는 이터레이터를 리턴하므로 아래와 같이 for of 에서 사용 가능하다
const aa = friendTeller();
for (const a of aa) {
console.log(a);
}