mingg IT

[JavaScript] 제너레이터(generator) 본문

FrontEnd

[JavaScript] 제너레이터(generator)

mingg123 2021. 1. 12. 15:37

제너레이터는 함수의 실행을 중간에 멈추고 재개할 수 있는 독특한 기능

 

ex)

function* f1() {

yield 10;

yield 20;

return 'finished';

}

const gen = f1();

 

yield 함수의 실행을 멈출 수 있다.

 

제너레이터 객체는 next, return, throw메서드를 가지고 있다.

 

지연 평가(lazy evaluation) 필요한 순간에만 연산하는 방식

 

제너레이터 함수에서 다른 제너레이터 함수를 호출할 때는 yield* 키워드를 사용

 

function* g1() {

yield 2;

yield 3;

}

 

function* g2() {

yield 1;

yield* g1();

yield 4;

}

 

console.log(...g2()) // 1 2 3 4

 

yield* 키워드 오른쪽에는 제너레이터 객체뿐만 아니라 반복 가능한 모든 객체가 올 수 있다.

 

멀티태스킹은 여러 개의 태스크를 실행할 때 하나의 태스크가 종료되기 전에 멈추고 다른 테스크가 실행되는 것을 말함

 

 

Comments