라벨이 Generator인 게시물 표시

[JavaScript] 제너레이터(Generator)

이미지
제너레이터(Generator) 제너레이터는 중단점이있는 함수이다. 부가적으로 더 말해보면  이터레이터이자 이터러블을 생성하는 함수이다. 이터러블이란 순회 가능한 객체이다. function * gen () { yield 1 ; yield 2 ; yield 3 ; return 100 ; } let iter = gen (); console . log ( iter [ Symbol . iterator ]() === iter ); // true console . log ( iter . next ()); // {value: 1, done: false} console . log ( iter . next ()); // {value: 2, done: false} console . log ( iter . next ()); // {value: 3, done: false} console . log ( iter . next ()); // {value: 100, done: true} function * gen () { yield 1 ; yield 2 ; yield 3 ; return 100 ; } let iter = gen (); for ( const num of iter ) { console . log ( num ) // 1,2,3 } 제너레이터 사용법은 일반함수에서 앞에 *을 붙여서 제너레이터 함수를 만든다.  이렇게 작성한 제너레이터는 이터레이터를 반환한다. (순회 가능한 값?) 이렇게 반환된 이터레이터는 next() 메서드를 호출하여 한 단계식 순회하며 객체를 반환한다. 제너레이터에서는 중단점을 yield로 구분한다. 이러한 yield는 중단점이면서 값을 반환하기도 한다. 제너레이터 함수를통해 반환된 이터레이터는 이터러블이기도 하다. 제너레이터를 통해 반환된 이터레이터는 [Symbol.iterator] 메서드를 가지고있고  iter[Symbol.itera