기본 콘텐츠로 건너뛰기

라벨이 yield인 게시물 표시

yield*

 yield* 표현식은 다른 generator 또는 이터러블(iterable) 객체에 yield를 위임할 때 사용됩니다. 즉 내가 할 일을 다른녀석에게 양도할 수 있다! 아래의 코드를 보자 function * func() { yield [ 42 , 43 , 45 ] yield '424345' yield childFunc() } function * childFunc() { yield 42 yield 43 yield 45 } const iterator = func() for ( val of iterator ) { console.log( 'val' , val ) } 별거업는 코드이긴 하나, 작성 한 사람의 의도를 벗어난 코드 일 수 있다. 결과를 한번 보자 뭐 물론 이것이 의도 일 수는 있지만, 웬만해서는 안 그럴 것이다 원햇던 것은 func 함수 안에서의 iterator 각각각을 순회 하는 것을 원 할 수 있을 것이다. 자 그럴때 쓸 수 있는 키워드! function * func () { yield * [ 42 , 43 , 45 ] yield * '424345' yield * childFunc () } function * childFunc () { yield 42 yield 43 yield 45 } const iterator = func () for ( val of iterator ) { console . log ( 'val' , val ) } yeild*을 이용해보자. 간단하게도 순회의 단위를 바꿀 수 있다.