[javascript] 제너레이터 함수 (Generator)

Jean Young Park·2023년 8월 3일
0

javascript

목록 보기
10/15

제너레이터 함수란

제너레이터 함수는 일반 함수와 비슷하지만, yield 키워드를 사용하여 값을 반환할 수 있다. 제너레이터 함수는 값을 한 번에 반환하는 대신, 값을 순차적으로 반환하다. 이 특징 때문에 제너레이터 함수는 비동기 작업을 처리하는 데 유용하다.
또한 일반 함수와 달리 중간에 일시 중지했다가 다시 시작할 수 있는 기능을 가지고 있다.

예시

  • 반복 가능한 객체를 생성
function* numbers() {
  for (let i = 1; i <= 10; i++) {
    yield i;
  }
}

const nums = numbers();

for (let num of nums) {
  console.log(num);
}

또한 제너레이터 함수는 다음과 같은 두 가지 상태를 가질 수 있다.

  • 생성 중 : 제너레이터 함수가 yield 키워드를 만나면 일시 중지된다.
  • 실행 중 : 제너레이터 함수가 yield 키워드에서 다음 값을 생성하면 다시 시작된다.

제너레이터 함수는 next() 메서드를 사용하여 다음 값을 가져올 수 있다.

function* numbers() {
  for (let i = 1; i <= 10; i++) {
    yield i;
  }
}

const nums = numbers();

// 다음 값을 가져옴
const num1 = nums.next();

// 다음 값을 가져옴
const num2 = nums.next();

0개의 댓글