function* myGenerator() {
yield 1;
yield 2;
yield 3;
}
function 뒤에 *를 붙이면 generator가 됨.yield(산출) 임.const gen = myGenerator();
console.log(gen.next()); // { value: 1, done: false }
console.log(gen.next()); // { value: 2, done: false }
console.log(gen.next()); // { value: 3, done: false }
console.log(gen.next()); // { value: undefined, done: true }

done이라는 key에는 false boolean값이 들어가 있음. 아직 yield할게 남아 있다는 거겠지.value는 undefined가 되고, done도 true로 바뀜.return을 쓰면 됨.function* accumulateEveryTen() {
let sum = 0;
for (let i = 1; i < 1000; i++) { // 루프
sum += i;
if (i % 10 === 0) {
yield sum; // 10번마다 합계를 yield
sum = 0; // 합계를 초기화
}
}
}
async function processGenerator(gen) {
while (true) {
for (let i = 0; i < 10; i++) {
await new Promise(resolve => setTimeout(resolve, 100)); // 비동기 대기
}
const result = gen.next().value;
console.log(result);
if (result === undefined) break; // 종료 조건
}
}
const gen = accumulateEveryTen();
processGenerator(gen);
i % 10을 사용하고 그 때만 yield sum.출처1: https://ko.javascript.info/generators
출처2: https://wonism.github.io/javascript-generator/