Generator

00_8_3·2020년 9월 20일
0

generator

일반 함수는 하나의 값만을 반환한다.

하지만 제너레이터(generator)를 사용하면 여러 개의 값을 필요에 따라 반환 할 수 있다.

function* generateSequence() {
  yield 1;
  yield 2;
  return 3;
}

next()는 제너레이터의 주요 메서드이다.
호출하면 가장 가까운 yield 문을 만날 때까지 실행이 지속된다.

let generator = generateSequence();

let one = generator.next();

alert(JSON.stringify(one)); // {value: 1, done: false}

제너레이터와 이터러블

제너레이터는 이터러블이다 따라서 for...of 반복문을 사용 할 수 있다.

function* generateSequence() {
  yield 1;
  yield 2;
  return 3;
}

let generator = generateSequence();

for(let value of generator) {
  alert(value); // 1, 2가 출력됨
}

주의 할 점은 1과 2만 출력되고 3은 출력되지 않는다.
done: ture 일 때 마지막 밸류를 무시하기 때문이다

출처 : https://ko.javascript.info/generators

0개의 댓글