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*을 이용해보자.
간단하게도 순회의 단위를 바꿀 수 있다.
댓글
댓글 쓰기