제너레이터

박현석·2022년 8월 26일
1

Javascript ES6+

목록 보기
58/88
function* multipleGenerator() {
  try {
    for (let i = 0; i < 10; i++) {
      console.log(i);
      yield i ** 2;
    }
  } catch (error) {
    console.log(error);
  }
}
const multiple = multipleGenerator();
let next = multiple.next();
console.log(next.value, next.done);

// multiple.return();
multiple.throw('Error!');

next = multiple.next();
console.log(next.value, next.done);
  • function 옆에 * 을 붙여줘야 제너레이터 라는 걸 알려준다.

  • 이터러블의 간편 버전

  • yield는 return과 비슷하지만 다음 사용자가 next()를 호출할 때까지 기다렸다가 사용자가 next()호출 해야지 그 다음 코드로 실행이 되어서 순회를 하고 다시 기다렸다가 next()를 호출 해야지 다시 순회한다. 즉 사용하는 사람한테 제어권을 양도한다.

  • 하지만 이터러블과 제너레이터를 구현 할 경우는 거의 없다.

profile
선한 영향력을 주는 사람

0개의 댓글