function* (generator function)

2023. 3. 29. 13:53개발/js,ts,node

반응형

Generator function은 JavaScript의 함수 유형 중 하나로, 값을 반환하고 호출을 끝내는 대신 값을 생성하고 호출자에게 전달하는 방식으로 작동합니다. 이러한 함수는 함수 내부의 yield 키워드를 사용하여 값을 반환하고 호출 상태를 유지하며, 다음 호출에서 함수 실행을 이어나갈 수 있습니다.

Generator 함수는 일반적으로 for...of 반복문과 함께 사용되어 시퀀스를 생성하거나, 비동기적인 제어 흐름을 생성하는데 유용합니다. 또한 Generator 함수는 메모리를 효율적으로 사용할 수 있어 대용량의 데이터셋을 다루는데 유용합니다.

다음은 Generator 함수의 예시입니다.

function* counter() {
  let i = 0;
  while (true) {
    yield i;
    i++;
  }
}

const gen = counter();

console.log(gen.next().value); // 0
console.log(gen.next().value); // 1
console.log(gen.next().value); // 2
// ...

위 예시에서, counter() 함수는 무한한 while 루프를 가지고 있습니다. 하지만 호출자는 Generator 객체를 통해 next() 메서드를 호출하면서 순차적으로 값을 생성받을 수 있습니다. yield 키워드는 호출자에게 값을 반환하고, 호출 상태를 유지하며 다음 호출에서 실행을 이어나갈 수 있게 합니다.

반응형

'개발 > js,ts,node' 카테고리의 다른 글

.then((response) => response.data);  (0) 2023.03.31
TypeScript란 무엇인가?  (0) 2023.03.30
Array Method every some  (0) 2023.03.27
js 대괄호 : [] , 중괄호 : {} , 소괄호 : ()  (0) 2023.03.22
export default와 export  (0) 2023.03.22